我是Android的菜鸟,我正在尝试根据用户选择来充气两个不同的菜单。但是,菜单没有切换。无论用户选择什么,相同的菜单每次都会膨胀。我已尝试用各种参数检查我的if / else statmente,菜单inflater仍然没有正确响应只通过膨胀相同的菜单。非常感谢任何帮助。
@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;
}
答案 0 :(得分:1)
无论用户选择什么,相同的菜单每次都会膨胀。
这是因为每次打开菜单时都不会调用onCreateOptionsMenu()
,the documentation:
仅在第一次显示选项菜单时调用此选项。要在每次显示菜单时更新菜单,请参阅onPrepareOptionsMenu(Menu)
如果您想更改菜单,则需要在onPrepareOptionsMenu()
中执行此操作。但是,每次调用onPrepareOptionsMenu()
时,我都不相信您可以或应该为新菜单充气。但是,您可以组合这两个菜单,并根据您在此方法中的需要更改每个菜单项的可见性。