我希望在屏幕上显示菜单时设置我的代码中的某个标志。我尝试在onKeyDown中捕获keyCode == KeyEvent.KEYCODE_MENU事件以检测菜单何时出现 - 但是如果第二次按下菜单按钮(使菜单消失),则没有keyCode == KeyEvent.KEYCODE_MENU事件。
我应该寻找其他一些事件,还是有功能来测试某种菜单是否显示?
答案 0 :(得分:2)
要捕捉正在打开的菜单,您可以覆盖
public boolean onPrepareOptionsMenu(Menu menu)
要捕捉正在关闭的菜单,您可以覆盖
public void onOptionsMenuClosed(Menu menu)
但是请记住,当用户第二次按下“菜单”按钮或点击其中一个菜单选项时,将同时调用第二个。因此,您需要将其与
结合使用public boolean onOptionsItemSelected(MenuItem item)