2

我之前在 Android 开发邮件列表上问过这个问题,但没有得到回复。

在我的应用程序中,我不时打开软键盘,看起来 DEL 键的事件没有传递。有问题的方法是

http://pastebin.com/zZaZWJ4t

整个Java类都在

http://squeakvm-tablet.googlecode.com/hg/project/src/org/squeak/android/SqueakView.java

除 KEYCODE_DEL 外,在软键盘上轻敲的任何字母数字键或 Enter(Return)都会传递给应用程序。我试图用其他任何东西(例如硬件按钮PAGE_UP的代码)替换case子句中的KEYCODE_DEL,并且当按下该按钮时该子句控制。

我没有继承 Android Keyboard 类,只是使用了默认的输入管理器。

为了接收 KEYCODE_DEL 的事件,可以做些什么?派生键盘子类是唯一的方法吗?

谢谢。

4

2 回答 2

0

我有一个类似的问题,我可以通过使用addTextChangedListener将TextWatcher添加到 EditText来解决它。

于 2011-03-15T18:39:50.380 回答
0

您的 onCreateInputConnection() 覆盖没有返回 TYPE_NULL 作为输入类型。您必须使用 TYPE_NULL 来确保将生成关键事件。它们实际上是为某些键生成的,而不是为其他键生成的,在某些版本的 Android 中而不是在其他版本中,但是除非您使用 TYPE_NULL,否则没有什么可以指望的。

如果您确实调整了代码以使用 TYPE_NULL,那么请参阅此解决方法的描述,以解决影响 TYPE_NULL 处理的默认 LatinIME Google 键盘的某些版本中的两个错误:

Android - 无法以软方式捕获退格/删除键。键盘

于 2014-01-31T06:53:40.907 回答