我有一个 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 列表示例。