我有一个不使用选项菜单的主要活动。我需要实现这个行为: 1.当Android菜单按钮被按下时,弹出窗口被显示 2.当再次按下Android菜单按钮时,弹出窗口被解除。拦截PopupWindow中的Android菜单按钮
我知道如何通过在主要活动中覆盖onKeyDown()来做#1,但不知道如何去做#2。当显示弹出窗口时,主活动的onKeyDown()不再被触发。
当主要活动打开弹出窗口时,如何捕获Android菜单按钮? (在我的例子中,弹出窗口是一个PopupWindow,它具有充气的视图)。
顺便说一句,我试图设置一个按键侦听器,在弹出的主视图,但它不会被触发
mTopView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
LogUtil.debug("*** Key: %d", keyCode);
return false;
}
});
如果是我,我会将“弹出式窗口”放入其自己的活动中,这样可以以与MainActivity中完全相同的方式完成。在弹出活动中按下菜单时,请调用finish()。 – FoamyGuy
谢谢。我在弹出的解决方案中投入了大量代码(它需要在与锚点视图相关的特定位置和形状中弹出)。如果我不能找到一种方法来实现它,我将尝试活动方法。 – user1139880