为什么MenuInflater没有响应?

时间:2012-10-17 23:15:24

标签: android if-statement menu menuitem inflate

我是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;
}

1 个答案:

答案 0 :(得分:1)

  

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

这是因为每次打开菜单时都不会调用onCreateOptionsMenu()the documentation

  

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

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