我有以下代码,我无法理解为什么我的代码没有显示菜单。如果活动包含数据,condition_true = true
则为condition_true = false
。我可以清楚地看到控制器会进入menutag,条件也是如此。即使我在日志中也得到Inflated
字符串。但仍然没有显示菜单。我在link 1,link2等广告中看过很多帖子,但这并没有解决我的问题。有人可以帮我解决这个问题吗?
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.clear(); //Clear view of previous menu
MenuInflater inflater = getSupportMenuInflater();
Log.d("menutag", condition_true);
if(condition_true)
{
inflater.inflate(R.layout.menu, menu);
Log.d("menutag","Inflated");
}
return super.onPrepareOptionsMenu(menu); // replaced this with true, but no use.
}
答案 0 :(得分:2)
你必须在xml中添加options属性..否则你可以这样编程:
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.yourmenuxmlfilename, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId){
case R.id.item1:
// what you want to do with first button
break;
case .....
break;
}
return true;
}
答案 1 :(得分:0)
也许你要覆盖onKeyDown并且它总是返回true?这可能会导致问题,因为它也会捕获按下菜单按钮的事件。