我有一个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章中的待办事项列表示例。
答案 0 :(得分:1)
看来android:inputType="text"
确实是正确的做法。