0

我一直在编写一个主要由硬件键盘输入驱动的 Android 应用程序。我正在添加软键盘支持,但还没有完成。但我离题了...

最初,我正在对照 KeyEvent 类中的枚举检查传递给 OnKey 函数的整数 keyCode 值。够简单...

但我需要知道用户是否按下了会生成 > 符号的组合键。因此,我检查了是否同时按下了 ALT 并传入了 X 键码……但事实证明,不同手机上的不同键会生成 > 符号。

现在,相反,我根据 Unicode 字符的已知值检查 KeyEvent 的 getUnicodeChar 方法的值。

我的问题已经解决了——但是有没有一种可接受的方式来进行字符检查?大多数人只是不需要 ALT 符号,还是大多数人使用的是跨设备标准的软件键盘?没有内置的 Unicode 字符枚举表(我知道,无论如何),所以这也使得代码有点难看。只是好奇!

4

1 回答 1

0

我相信您是正确的,因为检测已按下哪个符号/替代键的唯一方法是查看 unicode 字符。

通常,人们只对主键感兴趣,所以 KeyCode 就足够了。

您不能依赖正在使用的任何特定 IME(软键盘)。另请注意,通过 IME 输入的文本由文本小部件通过InputConnection访问,因此它通常不像硬件键盘那样使用 KeyEvents。

于 2010-12-02T21:08:02.803 回答