onKeyDown只用Backspace射击

时间:2014-03-24 05:18:57

标签: java android events

public boolean onKeyDown(int keyCode, KeyEvent event) {

}

此方法中的代码仅在所选EditText具有退格键条目时触发。我需要为任何类型的所有按键触发它。这个方法不在KeyEvent对象中,而是浮动在我的主要活动的主体中,因此应该响应任何键按下吧?为什么只有退格和“完成”键?顺便说一下,我只接受号码输入。

感谢。

1 个答案:

答案 0 :(得分:2)

假设您在较新的Android版本上使用了软键盘,那么来自the KeyEvent reference的以下内容可能会解释您未获得预期关键事件的原因。

“由于软输入法可以使用多种创造性的输入文字方式,无法保证软键盘上的任何按键都会产生关键事件:这由IME自行决定,实际上不鼓励发送此类事件。您不应该依赖于接收软输入法上任何键的KeyEvent。特别是,默认软件键盘永远不会向任何针对Jelly Bean或更高版本的应用程序发送任何键事件,并且只会将删除和返回键的某些按钮的事件发送到目标为Ice Cream Sandwich或更早版本的应用程序。请注意,无论版本如何,其他软件输入方法都可能永远不会发送关键事件。请考虑使用编辑器操作,例如IME_ACTION_DONE,如果您需要与软件键盘进行特定交互,因为它可以让用户更加了解应用程序对按键操作的反应。“