在Android Jelly Bean的EditText中使用软键盘进行编辑时,如何检测“输入”字符?

时间:2012-12-06 12:21:20

标签: android-layout android-4.2-jelly-bean ime textedit

我有一个EditText,我正在尝试使用setOnKeyListener监听击键,这样当我检测到Enter键时,它会执行一些操作。它适用于硬键盘和模拟器,但不适用于我的Galaxy Nexus。

setOnKeyListener的文档说"软件输入法中的按键通常不会触发此监听器的方法",这解释了为什么不这样做。

我不想明确添加"完成"屏幕上的按钮,如Building Your First App教程。

我现在已将其设置为使用布局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;
        }
    }

这基于Professional Android 4 Application Development第4章中的待办事项列表示例。

1 个答案:

答案 0 :(得分:1)

看来android:inputType="text"确实是正确的做法。