如何获得软键盘KEYCODE_DEL的事件?

时间:2011-03-06 14:14:48

标签: android squeak

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

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

http://pastebin.com/zZaZWJ4t

并且整个Java类位于

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

软键盘上的任何字母数字键或Enter键(返回)都是 传递给除KEYCODE_DEL之外的应用程序。我试着替换 case子句中的KEYCODE_DEL与其他任何东西(例如代码为 对于硬件按钮PAGE_UP),该子句在何时获得控制权 按下按钮。

我没有使用Android Keyboard类的子类,只是使用了默认值 输入经理。

为了接收KEYCODE_DEL的活动,可以做些什么?是 导出键盘子类的唯一方法是什么?

感谢。

2 个答案:

答案 0 :(得分:0)

我遇到了类似问题,我可以使用TextWatcher向EditText添加addTextChangedListener来解决此问题。

答案 1 :(得分:0)

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

如果您 调整代码以使用TYPE_NULL,那么请参阅默认LatinIME Google键盘的某些版本中影响TYPE_NULL处理的两个错误的变通方法的说明:

Android - cannot capture backspace/delete press in soft. keyboard