【问题标题】:How to Listen Android keyboard Close Event after Typing finished in EditText?在 EditText 中键入完成后如何监听 Android 键盘关闭事件?
【发布时间】:2014-03-04 06:18:10
【问题描述】:

我提到了这个link 来监听 android EditText 完成输入事件。但是从这个参考资料中,我只得到了 Enter 按键事件。当用户在完成输入后关闭键盘以及按下 Next 时,我需要监听一个事件。有什么办法可以在android中监听这些事件。

【问题讨论】:

    标签: android-edittext android-softkeyboard keyboard-events android-keypad android-event


    【解决方案1】:

    最后我得到了下一步/完成/搜索的答案并像这样输入按键

    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if(event !=null){
            if(actionId == EditorInfo.IME_ACTION_SEARCH || 
                    actionId == EditorInfo.IME_ACTION_NEXT || 
                    actionId == EditorInfo.IME_ACTION_DONE || 
                    event.getAction() == KeyEvent.ACTION_DOWN && 
                    event.getKeyCode() == KeyEvent.KEYCODE_ENTER){
                if (!event.isShiftPressed()) {
    
                     Log.e("", "FINISHED Typing : "+v.getText().toString());
                       return true; // consume.
                }   
            }
        }
        else{
            if(actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_NEXT || actionId == EditorInfo.IME_ACTION_DONE){
                Log.e("", "Next/Done/Search Pressed");
                return true;
            }
    
        }
        return false;
    }
    

    同样对于键盘关闭,我自定义了 editText 并将 onKeyPreIme 方法覆盖到其中。每当我需要编辑文本时,我都会使用此编辑文本。这解决了我的问题。

    @Override
    public boolean onKeyPreIme(int keyCode, KeyEvent event) {
        if (event.getAction()!=KeyEvent.ACTION_DOWN){
            if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
                dispatchKeyEvent(event);
               //do whatever you want to do here, when keypad dismiss on EditText 
                return false;
            } 
        } 
        return super.onKeyPreIme(keyCode, event);
    }
    

    【讨论】:

    • @AndEndine 谢谢你,帮了我很多!
    猜你喜欢
    • 2018-04-15
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    • 2015-08-14
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多