我正在使用onKeyListener来获取onKey事件.它可以正常使用普通键盘.但它不适用于软键盘.我只能获得数字而非字母的关键事件.有没有解决方法可以解决这个问题?任何形式的帮助将不胜感激.
Mar*_*k B 12
我完全不相信使用软件键盘调用OnKeyListener.它与软件键盘是IME设备有关,IME设备可能是键盘以外的东西.它似乎使onKeyListener几乎无用,因为它只适用于带有硬件键盘的手机.我最近工作解决此问题,通过使用TextWatcher在我的活动上的EditText场,而不是使用OnKeyListener.
这可能很愚蠢,但这就是Android目前的工作方式。
文档指出,按键事件将仅针对硬件按键传播,而不会针对软件传播。
实际上,不鼓励设备制造商通过键侦听器传播软键盘事件,尽管完全由制造商来决定是否接受或实际上以相等的条件对待软键盘和硬键盘。
从Android 4.2.2开始,Android系统本身完全不支持软键盘的按键事件,因此,即使是制造商也将无法选择他们的方式。
因此,这里唯一安全的选择是实现自己的IME(软键盘),并自己处理击键。
TextWatcher通常可以用来代替键侦听器,但是editText.setText(...); 也会触发TextWatcher事件,因此,如果仅对键入的键感兴趣,则TextWatcher可能也不是一种解决方案。
将TextWatcher与AutocomleteTextView或EditText一起使用时,请小心。不要在TextWatcher事件中修改AutocompleteTextView / EditText内容中的文本,否则可能导致您陷入无限事件/收听循环。
希望这有助于弄清可用的选项,但可惜它没有提供有效的解决方案。
令人失望的是Google错过了用户界面的这一重要方面。
| 归档时间: |
|
| 查看次数: |
20695 次 |
| 最近记录: |