0

就我而言,我需要在将所有关键事件分派到目标之前拦截它们。所以我在每个视图或小部件上安装了一个 KeyListener,在这种情况下 Activity.onKey 不能满足我。

但是,我发现如果视图(如RelativeLayout)不可聚焦,它不会收到任何KeyEvent。我也收到了以下警告

WARN/KeyCharacterMap(312):id 0 没有键盘
WARN/KeyCharacterMap(312):使用默认键盘映射:/system/usr/keychars/qwerty.kcm.bin

如果我强制视图可聚焦,它将收到 KeyEvent。我很好奇这种现象。我不知道系统是否从不发送 KeyEvents 来查看无法聚焦的内容,或者只是我使用了错误的方式来拦截关键事件。

4

1 回答 1

0

为此,请在 Activity 上使用dispatchKeyEvent(参见http://developer.android.com/reference/android/view/Window.Callback.html#dispatchKeyEvent%28android.view.KeyEvent%29 )。这应该接收每个 KeyEvent。super.dispatchKeyEvent如果您想启动标准处理,您可以进行任何修改,然后调用。

于 2011-05-23T06:33:07.190 回答