我希望能够在用户退出选项菜单时自动取消暂停我的应用程序。(当然,除非他们选择了暂停……)
处理它onOptionsMenuClosed
适用于顶级菜单,但不需要子菜单。onPanelClosed
似乎也没有调用更高级别。
我可以检测到他们何时进入菜单以及他们是否进行了选择,但如果他们只是按下菜单按钮退出则无法检测到。
我可以重写整个子菜单以使用对话框,但如果可以避免,我宁愿不这样做。
有没有人有什么建议?
您可以覆盖 onkeydown ,设置一个标志来检查菜单是否显示,然后返回 super.onKeyDown(keyCode, event); .
您可以在每次按键时检查菜单是否在屏幕上。请记住,其他按钮(返回、搜索和主页并触摸屏幕的其他部分会关闭菜单。)。使用其他按钮,您可以处理它们,但主页按钮和手指点击不能被覆盖。
如果我是你,我会为此忘记 onkeydown 选项上的@override
但是您可以有 6 个菜单按钮,第 6 个称为“更多”,这可以创建一个自定义对话框,其中包含更多您可以处理的选项
当检测到菜单按钮时,您可以覆盖 onKeyDown 并自己实现菜单。