Android 所有活动通用的关键事件

Android key event generic for all activities

我想将下面的关键事件全部 activity。 我有大约 15 个活动。

    @Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    switch (keyCode) {
        case KeyEvent.KEYCODE_D:
            moveShip(MOVE_LEFT);
            return true;
        case KeyEvent.KEYCODE_F:
            moveShip(MOVE_RIGHT);
            return true;
        case KeyEvent.KEYCODE_J:
            fireMachineGun();
            return true;
        case KeyEvent.KEYCODE_K:
            fireMissile();
            return true;
        default:
            return super.onKeyUp(keyCode, event);
    }
}

而不是将相同的代码写入所有 activity。我想写一次并在所有活动中使用它。

我怎样才能实现这个场景?

创建一个 BaseActivity 扩展 Activity 您可以放置​​此方法的地方。 将 BaseActivity 扩展到您所有的 15 项活动。在您的所有活动中,您只需添加:

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
  super.onKeyUp(int keyCode, KeyEvent event);
 }

这将调用您的 BaseActivity onKeyUp 方法。