Android - 退格键不会发出onKeyDown回调

时间:2013-08-30 13:48:27

标签: android opengl-es keyboard backspace

    public boolean onKeyDown(int keyCode, KeyEvent event) 
    {
        if(this.keyHandler != null) this.keyHandler.onKeyDown(keyCode, event);
        return super.onKeyDown(keyCode, event);
    }

这是我的OpenGL Surface视图中的一个方法。显示键盘时,按下所有键 导致调用此重写回调函数。我已经在我的华硕TF101(Android 4.0.4)上进行了测试,一切正常,但是在我的LG nexus 4上,退格键(KEYCODE_DEL)按键没有做任何事情!

我有什么遗失的吗?

编辑:我还尝试在我的activity类中覆盖dispatchKeyEvent(KeyEvent事件) 但仍然没有捕获退格键。

2 个答案:

答案 0 :(得分:1)

有两个单独的错误(问题42904和62306)影响默认Google键盘(LatinIME)中的KEYCODE_DEL生成。键盘的某些版本有一个错误,有些版本有另一个,有些版本没有。所以,这就是为什么你的一些设备出现问题而有些设备出现问题的原因;这取决于设备上安装的Google键盘版本。

我已经对此进行了研究,并设计了一个带代码的解决方法,似乎解决了这两个问题。介绍变通方法的帖子还解释了它们在何处以及如何发生。那篇文章可以在这里找到:

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

答案 1 :(得分:-1)

您可以尝试捕获键并使用按下后退时触发的此方法。 http://developer.android.com/reference/android/app/Activity.html#onBackPressed()

您可以使用

super.onBackPressed();

在您的方法中,或者您可以覆盖它以在点击时执行其他操作

@Override
public void onBackPressed() 
{
       // your instructions
}