我希望 Android 设备上的菜单键打开一个对话框,而不是在我的应用程序运行时打开菜单。我尝试将其编码为onCreateOptionsMenu(Menu menu)
但它只在我第一次按下菜单按钮时起作用。我可以用其他方式来做吗?
您可以通过在活动中拦截系统按键来覆盖系统按键的默认行为。这是通过覆盖来完成的按键按下时 event, 并返回true
如果您想阻止系统处理密钥。您的案例的代码应如下所示:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ( keyCode == KeyEvent.KEYCODE_MENU ) {
// perform your desired action here
// return 'true' to prevent further propagation of the key event
return true;
}
// let the system handle all other key events
return super.onKeyDown(keyCode, event);
}
但这可能不适用于所有键;这样做的原因是密钥被发送到当前view
之前activity
收到此消息。在这种情况下,您需要覆盖onKeyDown
也适用于当前视图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)