使用android遥控器关闭弹出菜单
我在安卓机顶盒上编程,所以我还必须为交付的遥控器实现onKey事件 我的问题是,我正在创建一个新的弹出菜单,然后想通过某些keyEvents来取消它。事实上,当用户按除(向上/向下)以外的其他键时,它应该始终关闭。 目前,它仅在按下后退按钮或某个项目时消失。当我在弹出菜单外触摸时,它也会消失。但是,我需要能够在按下键时关闭菜单,例如KeyEvent.KEYCODE_2 主要的问题是,我根本无法捕捉任何onKeyDown/Up等事件!! 当弹出菜单显示时,它不会捕获我的活动中的任何KeyEvent 在Popupmenu/ContextMenu模式下是否有可能捕捉关键事件 编辑:以下是MainActivity中我的onKeyDown捕获的示例:使用android遥控器关闭弹出菜单,android,contextmenu,dismiss,onkeydown,popupmenu,Android,Contextmenu,Dismiss,Onkeydown,Popupmenu,我在安卓机顶盒上编程,所以我还必须为交付的遥控器实现onKey事件 我的问题是,我正在创建一个新的弹出菜单,然后想通过某些keyEvents来取消它。事实上,当用户按除(向上/向下)以外的其他键时,它应该始终关闭。 目前,它仅在按下后退按钮或某个项目时消失。当我在弹出菜单外触摸时,它也会消失。但是,我需要能够在按下键时关闭菜单,例如KeyEvent.KEYCODE_2 主要的问题是,我根本无法捕捉任何onKeyDown/Up等事件!! 当弹出菜单显示时,它不会捕获我的活动中的任何KeyEvent
@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;
}
发布您用来捕获关键事件的代码。请参阅我的编辑。我真的没有做什么特别的事情,好像在弹出菜单显示时很难处理按键事件。你有没有想过如何避免弹出菜单阻止所有按键输入?