捕获KeyEvent.KEYCODE_ENTER时Android Android键盘崩溃

时间:2014-09-15 08:20:20

标签: android

我正在尝试在Google Nexus 5上管理Google键盘上的Next事件。我希望我的应用程序在按下Next按钮时检查用户信息。

代码如下所示:

 private TextView.OnEditorActionListener GenerateEditorListeners()
{
    return new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if(actionId == EditorInfo.IME_NULL  && event.getKeyCode() == KeyEvent.KEYCODE_ENTER){

                if (!finished)
                {
                    if (CheckUserInfo()) finished = true;
                }
                return true;
            }
            else
            {
                return false;
            }
        }
    };
}

在三星Galaxy S4上运行完美,但在谷歌Nexus 5上 actionId = 0 event = null 。所以我发现三星键盘可以正常使用这个代码,但谷歌键盘不会发生相同的情况。

知道为什么它没有为谷歌的键盘而烦恼吗?

编辑:我在this帖子中读到Google键盘在某些LatinIME键盘上有错误....我正在使用拉丁语。如果这是问题,如何解决?

1 个答案:

答案 0 :(得分:0)

我可以使用OnKeyListener事件来解决它:

 textUserEmail.setOnKeyListener(new OnKeyListener() {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER){

                if (!finished)
                {
                    if (CheckUserInfo()) finished = true;
                }
                return true;
            }
            else
            {
                return false;
            }
        }
    });

现在它适用于所有键盘。