Android layout 我如何检测“故障”呢;输入“;在Android Jelly Bean上使用软键盘编辑EditText时的字符?

Android layout 我如何检测“故障”呢;输入“;在Android Jelly Bean上使用软键盘编辑EditText时的字符?,android-layout,android-4.2-jelly-bean,ime,textedit,Android Layout,Android 4.2 Jelly Bean,Ime,Textedit,我有一个EditText,正在尝试使用setOnKeyListener监听击键,因此当我检测到Enter键按下时,它会执行一些操作。它可以与硬键盘和模拟器配合使用,但在我的Galaxy Nexus上却不行 文档中说“软件输入法中的按键通常不会触发此侦听器的方法”,这就解释了为什么不能 我不想像教程中那样在屏幕上明确添加“完成”按钮 现在,我已经将其设置为在布局xml中使用android:inputType=“text”属性,它似乎达到了预期效果。这被认为是正确的方法吗?它在任何地方都有记录吗?它

我有一个EditText,正在尝试使用setOnKeyListener监听击键,因此当我检测到Enter键按下时,它会执行一些操作。它可以与硬键盘和模拟器配合使用,但在我的Galaxy Nexus上却不行

文档中说“软件输入法中的按键通常不会触发此侦听器的方法”,这就解释了为什么不能

我不想像教程中那样在屏幕上明确添加“完成”按钮

现在,我已经将其设置为在布局xml中使用
android:inputType=“text”
属性,它似乎达到了预期效果。这被认为是正确的方法吗?它在任何地方都有记录吗?它能在所有设备上工作吗?有更好的办法吗

以下是我在活动中使用的代码:

    myEditText.setOnKeyListener(new View.OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_DOWN) 
                if ((keyCode == KeyEvent.KEYCODE_DPAD_CENTER) ||
                  (keyCode == KeyEvent.KEYCODE_ENTER)) {
                    // Process the entered text here
                    myEditText.setText("");
                    return true;
                }
            return false;
        }
    }

这是基于的第4章中的待办事项列表示例。

看来
android:inputType=“text”
确实是正确的方法。

看来
android:inputType=“text”
确实是正确的方法。

检查这个问题,可能会有所帮助:我已经看到了这个问题,这就是为什么我最终设置了android:inputType=“text”(在阅读了这个问题后,我遵循了一些文档)。它似乎起作用了。然而,什么是“正确”的方法还远未可知。是否应该使用“onEditorAction”而不是“onKey”?这适用于所有设备吗?检查这个问题,它可能会有所帮助:我已经看到了这个问题,这就是我如何设置android:inputType=“text”(阅读该问题后,遵循一些文档)的结果。它似乎起作用了。然而,什么是“正确”的方法还远未可知。是否应该使用“onEditorAction”而不是“onKey”?这是否适用于所有设备?