【问题标题】:Detecting menu button being pressed a second time检测菜单按钮被第二次按下
【发布时间】:2012-01-27 16:54:23
【问题描述】:

我希望在屏幕上显示菜单时设置我的代码中的某个标志。我尝试在 onKeyDown 中捕获 keyCode == KeyEvent.KEYCODE_MENU 事件以检测菜单何时出现 - 但是如果第二次按下菜单按钮(使菜单消失),则没有 keyCode == KeyEvent.KEYCODE_MENU 事件。

我应该寻找其他一些事件,还是有一个功能可以测试某种菜单是否正在显示?

【问题讨论】:

  • 检查我的答案是多么容易检测到主页、最近和电源按钮。检查this

标签: android


【解决方案1】:

要捕获正在打开的菜单,您可以覆盖

public boolean onPrepareOptionsMenu(Menu menu)

要捕获正在关闭的菜单,您可以覆盖

public void onOptionsMenuClosed(Menu menu)

但是请记住,当用户第二次按下“菜单”按钮或点击其中一个菜单选项时,都会调用第二个。因此,您需要结合使用它

public boolean onOptionsItemSelected(MenuItem item)

【讨论】:

  • 不适用于我的情况。请参考stackoverflow.com/questions/15652444/…
  • 我对为什么 ppl 对实际的错误答案给出了明显的答案感到非常失望。
  • @ArslanAhmad 关心解释为什么相信这个答案是错误的?两年前被问到这个问题时,它运行良好 - 现在仍然运行良好。
  • @AleksG 我已经尝试了这 1000 次,即使是我的朋友和同事,但这种方法无法检测到 Home 、Recent Apps 按钮。如果您认为它有效,请给我示例代码 如果它运行,我会给您 5 + 我朋友的投票
  • @ArslanAhmad 当然不是。这个问题专门针对菜单按钮 - 答案也是如此。
猜你喜欢
  • 1970-01-01
  • 2020-01-23
  • 2023-04-09
  • 2020-05-23
  • 1970-01-01
  • 2013-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多