Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java onKeyDown仅使用退格触发_Java_Android_Events - Fatal编程技术网

Java onKeyDown仅使用退格触发

Java onKeyDown仅使用退格触发,java,android,events,Java,Android,Events,此方法中的代码仅在选定的EditText具有退格键条目时激发。我需要它被任何类型的按键触发。此方法不在KeyEvent对象中,而是浮动在我的主要活动主体中,因此应该响应任何按键,对吗?为什么只有退格和“完成”键?顺便说一下,我只接受数字输入 谢谢。假设您在较新的Android版本上使用软键盘,那么下面的简介可能会解释您无法获得预期按键事件的原因 “由于软输入法可以使用多种创造性的文本输入方式,不能保证软键盘上的任何按键都会生成按键事件:这由IME自行决定,事实上不鼓励发送此类事件。在软输入法中,

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


谢谢。

假设您在较新的Android版本上使用软键盘,那么下面的简介可能会解释您无法获得预期按键事件的原因


“由于软输入法可以使用多种创造性的文本输入方式,不能保证软键盘上的任何按键都会生成按键事件:这由IME自行决定,事实上不鼓励发送此类事件。在软输入法中,任何键都不应依赖于接收KeyEvents。特别是,默认软件键盘不会向任何针对Jelly Bean或更高版本的应用程序发送任何按键事件,只会向针对冰淇淋三明治或更早版本的应用程序发送一些按delete键和return键的事件。请注意,无论版本如何,其他软件输入方法可能永远不会发送关键事件。如果需要与软件键盘进行特定的交互,请考虑使用像IMEYActhOngION这样的编辑器操作,因为它给用户更多的可见性,说明您的应用程序对按键的反应。“

你能发布更多的代码吗,这对调试很有帮助。特别是在您配置和连接侦听器的地方。我会的,但有点不确定需要我做什么。现在onKeyDown只包含一些日志调用,除了导入之外,没有其他对该方法的引用。代码是要锚定到整个活动,我不调用setKeyListener或等效程序只是为了澄清EditText与此方法没有特别关联,它只是位于我的类中,但不是嵌套的。这是用于股票软键盘的吗?是android虚拟键盘(仅用于数字的键盘)回答了您的问题吗?抱歉,我对这个键盘很陌生,lingoCan您推荐一种替代按键事件的方法,仅当EditText的文本发生更改时(当用户键入时)才获取该文本?实现TextWatcher界面,如所述。当文本更改时,它会通知您。
public boolean onKeyDown(int keyCode, KeyEvent event) {

}