android - 俄语(西里尔文)关键事件未触发

标签 android android-custom-view ime cyrillic

我有一个覆盖了 onKeyDown() 的自定义 View 。当我使用标准的 Android 英语(或意大利语)软键盘时它工作正常,但是当我将设备设置为俄语时,按键事件永远不会到达 onKeyDown()onKeyUp() (他们从未被调用,我尝试使用断点)。

此外,如果所有 View 都丢弃了该事件,我应该能够从 Activity 的方法中捕获它,但似乎我什至无法做到这一点。请注意, View 是聚焦的,事实上我可以捕捉到方向键的按下。删除/退格俄语软键也被捕获。

我应该如何捕捉俄语字符键事件?

最佳答案

来自KeyEvent文档:

As soft input methods can use multiple and inventive ways of inputting text, there is no guarantee that any key press on a soft keyboard will generate a key event: this is left to the IME's discretion, and in fact sending such events is discouraged. You should never rely on receiving KeyEvents for any key on a soft input method.

就您获得KeyEvent而言,它违反了 Google 的建议,并且在未来的所有 android 版本中都不受支持。随着时间的推移,这种方法肯定会在更多设备上失效。那么如何捕捉角色呢? 一种选择是使用 TextWatcher .

关于android - 俄语(西里尔文)关键事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18151966/

相关文章:

vba - 日文键盘编程 "Henkan"「変换」按钮

c# - 如何在 Wndproc 中专门获取 C# Winform 中的 IME 布局?

java - 在我的启动器应用程序内按主页按钮转到主屏幕

javascript - Phonegap 联系人。更新联系人时保存重复的电话号码

android - 向 HexagonLoadingView 添加淡入淡出动画

android - Android 中的 Fragment 与自定义 View

android - 是否可以在锁定屏幕打开时在 Android 上录制音频?

android - 自定义 ListView 适配器显示不正确的值 [Mono Android]

android - 创建接受 xml 属性中其他布局的自定义 View

c++ - 如何获取ime语言信息?( windows, C++ )