我愿意阻止用户使用菜单键打开菜单。 必须仅从我的应用程序中的菜单按钮打开菜单。 所以我删除了这部分代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
现在,如果按下按键,它就什么都没发生,这就是我想要的。 问题是,如果我在应用程序中按下我的菜单按钮,菜单就不再显示了......
那又怎么样? 我想添加
getMenuInflater().inflate(R.menu.main, menu);
在我的听众菜单按钮上,但这是错误,我不明白该做什么......有什么建议吗? 谢谢!
答案 0 :(得分:1)
您必须添加onCreateOptionsMenu部分。但是覆盖onKeyDown事件以禁用菜单键。像这样:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
return keyCode == KeyEvent.KEYCODE_MENU || super.onKeyDown(keyCode, event);
}
答案 1 :(得分:1)
使用样式模板。如果SDK< Jelly Bean使用ActionBar的风格。
答案 2 :(得分:0)
我不确定但这应该有效
在main class
(所有子类之外)中定义此变量 -
public class ... extends ... {
boolean menu = false;
...
}
然后,只要您点击打印屏幕上的menu button
,请执行以下操作 -
@Override
public void onClick(View v){
menu = true;
openOptionMenu();
}
在您的onCreateOptionMenu
中,执行此操作 -
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if(menu){
getMenuInflater().inflate(R.menu.main, menu);
}
menu = false;
return true;
}