我有2个活动,我在那里覆盖了onKeyUp事件:
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
Log.d(TAG, "Key up: " + keyCode);
return super.onKeyUp(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)
第一个是应用程序的主要活动,另一个是次要活动.第一个工作正常,但第二个捕获Left-Right-Up-Down但不是Center click的事件.为什么?
由于您的布局中有一个Gallery,请查看:https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/Gallery.java#L1216.Gallery可能会窃取您的DPAD_CENTER事件(以及ENTER).
我建议您使用Activity.dispatchKeyEvent(android.view.KeyEvent)在事件进入该Gallery之前停止该事件.
尝试使用它(在您的活动中):
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if(event.getKeyCode() == KeyEvent.KEYCODE_DPAD_CENTER) {
// Do your stuff here.
return true; // Consume the event (or not, your call)
}
return super.dispatchKeyEvent(event);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2575 次 |
| 最近记录: |