如何抓住软键盘" ENTER"

时间:2016-09-07 12:46:35

标签: android

我正在开发一个聊天应用程序,并且在编辑消息期间(在EditText中)在软键盘上按下了查找ENTER的方法。目的是直接发送文本。 显然我也实施了一个" SEND"按钮。

两次尝试:

  1. 使用editText.addTextChangedListener(new TextWatcher()..

    结果:我得到了#34; \ n" onTextChanged和afterTextChanged中的字符 回调。我可以"删除"这个角色和发送聊天,但我不喜欢 这样。

  2. 使用editText.setOnEditorActionListener(new TextView.OnEditorActionListener()..

    结果:它不起作用。

  3. 有更好的解决方案吗?

2 个答案:

答案 0 :(得分:0)

试试这个;

editText.setOnKeyListener(new OnKeyListener()
{
    public boolean onKey(View v, int keyCode, KeyEvent event)
    {
        if (event.getAction() == KeyEvent.ACTION_DOWN)
        {
            switch (keyCode)
            {
                case KeyEvent.KEYCODE_DPAD_CENTER:
                case KeyEvent.KEYCODE_ENTER:
                    //Perform Your action
                    return true;
                default:
                    break;
            }
        }
        return false;
    }
});

答案 1 :(得分:0)

我使用它来捕捉软键盘输入并且效果很好,但我不确定这是否适合你:

editText.setOnKeyListener(new View.OnKeyListener() {
    @Override
    public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
        if (keyCode == KeyEvent.KEYCODE_ENTER && keyEvent.getAction() == KeyEvent.ACTION_UP) {
            //do something.
            return true;
        }
        return false;
    }
});