0

我正在 Android 机顶盒上编程,因此我还必须为交付的遥控器实现 onKey 事件。

我的问题是,我正在创建一个新的 PopupMenu,然后想通过某些 keyEvents 将其关闭。事实上,当用户按下(上/下)以外的其他键时,它应该总是关闭。目前它仅在按下后退按钮或项目时消失。当我在弹出菜单之外触摸时,它也会消失。但是我需要能够在点击 KeyEvent.KEYCODE_2 时关闭菜单。

主要问题是,我根本无法捕捉到任何 onKeyDown/Up 等事件!当弹出菜单显示时,它根本不会在我的 Activity 中捕获任何 KeyEvent。

在 Popupmenu/ContextMenu 模式下是否有可能捕获关键事件?

编辑:这是我在 MainActivity 中的 onKeyDown 捕获的示例:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    Log.e("Key hit","true");
    try {
        switch (keyCode) {

        case KeyEvent.KEYCODE_DPAD_LEFT:
            Log.e("Test"," catch left");
            return true;

        case KeyEvent.KEYCODE_0:
            Log.e("Test","hit 0");
            break;
        case KeyEvent.KEYCODE_2:
            Log.e("Test","hit 2");

            break;

    } catch (Exception e) {
        Log.d("onKeyDown", "exception");
        e.printStackTrace();
    }
    return false;
}
4

0 回答 0