1

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

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

我不想像在构建您的第一个应用程序教程中那样在屏幕上显式添加“完成”按钮。

我现在已经将它设置为使用android:inputType="text"布局 xml 中的属性,并且它似乎具有预期的效果。这被认为是正确的方法吗?它在任何地方都有记录吗?它适用于所有设备吗?有没有更好的办法?

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

    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;
        }
    }

这是基于专业 Android 4 应用程序开发第 4 章中的 ToDo 列表示例。

4

1 回答 1

1

It appears that android:inputType="text" is indeed the correct approach.

于 2013-01-09T14:30:02.417 回答