0

我是 android 的菜鸟,我试图根据用户选择来膨胀两个不同的菜单。但是,菜单没有切换。无论用户选择什么,每次都会膨胀相同的菜单。我已经尝试并使用各种参数检查了我的 if/else 语句,但菜单充气机仍然无法通过仅充气同一个菜单来正确响应。任何帮助是极大的赞赏。

  @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;
}
4

1 回答 1

1

无论用户选择什么,每次都会膨胀相同的菜单。

那是因为onCreateOptionsMenu()每次打开菜单时都不会从文档中调用:

这只调用一次,第一次显示选项菜单。要在每次显示菜单时更新菜单,请参阅onPrepareOptionsMenu(Menu)

如果您想更改菜单,您需要在onPrepareOptionsMenu(). 但是,我不相信您可以或应该在每次onPrepareOptionsMenu()调用时都为新菜单充气。但是您可以结合这两个菜单并根据您在此方法中想要的内容更改每个菜单项的可见性。

于 2012-10-17T23:27:31.313 回答