开发者

Android: No KeyEvent on unfocusable view?

In my case, I'm required to intercept all key events before they are dispatched to target. So I installed a KeyListener on every view or widget, Activity.onKey can't satisfy me in the case.

However, I found that if view (like RelativeLayout) is not focusable, it won't receive any KeyEvent. And I also got following warnings

WARN/KeyCharacterMap(312): No keyboard for id 0

WARN/KeyCharacterMap(312): Using default keymap: /system/usr/keychars/qwerty.kcm.bin

If I forced view to be focusable, it's going to recei开发者_高级运维ve KeyEvent. I'm curious about this phenomenon. I've no idea about if system never sends KeyEvents to view which is unfocusable or just I used wrong way to intercept key events.


To do this use dispatchKeyEvent (see http://developer.android.com/reference/android/view/Window.Callback.html#dispatchKeyEvent%28android.view.KeyEvent%29) on the Activity. This should receive every KeyEvent. You can do any modifications and then call super.dispatchKeyEvent if you want the standard processing to kick in.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜