Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么不是';你有没有反应?_Android_If Statement_Menu_Menuitem_Inflate - Fatal编程技术网

Android 为什么不是';你有没有反应?

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

我是安卓的不速之客,我正试图根据用户的选择来扩大两个不同的菜单。但是,菜单没有切换。无论用户选择什么,每次都会显示相同的菜单。我试着用各种参数检查了我的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;
}
无论用户选择什么,每次都会显示相同的菜单

这是因为每次打开菜单时,不会从以下位置调用
onCreateOptions菜单()

第一次显示选项菜单时,仅调用一次。要在每次显示菜单时更新它,请参见


如果要更改菜单,需要在
onprepareOptions菜单()
中执行此操作。但是,我不认为每次调用
onPrepareOptionsMenu()
时都可以或应该为新菜单充气。但是你可以将这两个菜单结合起来,并根据你想用这种方法改变每个菜单项的可见性。

谢谢Sam。你刚刚教过我。很高兴我能教你,教过的听起来有点刺耳。也许您只是将ContextMenu与Options menu混淆了,因为每次打开菜单时都会调用
onCreateContextMenu()
。。。