Android 为什么不是';你有没有反应?
我是安卓的不速之客,我正试图根据用户的选择来扩大两个不同的菜单。但是,菜单没有切换。无论用户选择什么,每次都会显示相同的菜单。我试着用各种参数检查了我的if/else状态,但菜单充气器仍然不能正确响应,只能对同一菜单进行充气。非常感谢您的帮助Android 为什么不是';你有没有反应?,android,if-statement,menu,menuitem,inflate,Android,If Statement,Menu,Menuitem,Inflate,我是安卓的不速之客,我正试图根据用户的选择来扩大两个不同的菜单。但是,菜单没有切换。无论用户选择什么,每次都会显示相同的菜单。我试着用各种参数检查了我的if/else状态,但菜单充气器仍然不能正确响应,只能对同一菜单进行充气。非常感谢您的帮助 @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub super.onCreateOptionsMe
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
super.onCreateOptionsMenu(menu);
popUpMenu = getMenuInflater();
//popUpMenu.inflate(R.menu.cool_menu, menu);
if(mypodcast==null){
popUpMenu.inflate(R.menu.cool_menu, menu);
}else {
popUpMenu.inflate(R.menu.podcast, menu);
}
return true;
}
无论用户选择什么,每次都会显示相同的菜单
这是因为每次打开菜单时,不会从以下位置调用onCreateOptions菜单()
:
第一次显示选项菜单时,仅调用一次。要在每次显示菜单时更新它,请参见
如果要更改菜单,需要在
onprepareOptions菜单()
中执行此操作。但是,我不认为每次调用onPrepareOptionsMenu()
时都可以或应该为新菜单充气。但是你可以将这两个菜单结合起来,并根据你想用这种方法改变每个菜单项的可见性。谢谢Sam。你刚刚教过我。很高兴我能教你,教过的听起来有点刺耳。也许您只是将ContextMenu与Options menu混淆了,因为每次打开菜单时都会调用onCreateContextMenu()
。。。