Android 选择菜单项后更改菜单项可见性

Android 选择菜单项后更改菜单项可见性,android,android-actionbar,Android,Android Actionbar,我有两个菜单项,idR.id.start和R.id.stop。开始时,只有“开始:可见。现在,我想在选择其中任何一个时更改它们的可见性 我试图通过调用invalidateOptionsMenu(),然后在onPrepareOptionsMenu(菜单)上更改可见性来实现这一点。问题是我的菜单变空了。这可能是因为菜单想要重新创建,而我的oncreateoptions菜单(菜单)变空了在之前创建过之后,我不会再创建一个 当然,我可以重新创建它,但它不是必需的。有没有办法告诉android调用onPr

我有两个菜单项,id
R.id.start
R.id.stop
。开始时,只有“开始:可见。现在,我想在选择其中任何一个时更改它们的可见性

我试图通过调用
invalidateOptionsMenu()
,然后在
onPrepareOptionsMenu(菜单)
上更改可见性来实现这一点。问题是我的
菜单变空了。这可能是因为
菜单
想要重新创建,而我的
oncreateoptions菜单(菜单)变空了
在之前创建过之后,我不会再创建一个


当然,我可以重新创建它,但它不是必需的。有没有办法告诉android调用
onPrepareOptions功能表
,但不调用
onCreateOptions功能表

你实际上不需要我以前使用过的onPrepareOptions功能表,结果就不那么漂亮了

在您的类中,生成一个整数(例如,我的称为激活),并随时更改整数值,然后使选项菜单无效:

onClick(View v)
{
     activated=1;
     getActivity().invalidateOptionsMenu();
}
现在,在“选项”菜单中,检查整数的值,清除该菜单,然后相应地充气(您可以任意充气):


我可能误解了你的问题,但如果你说你不想在第二个选项不可见后显示菜单,你能不能从onPrepareOptions菜单返回false?
 @Override
 public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) 
 {
     if(activated==1)
     {
         menu.clear();  //this makes all the menus invisible
         //my menu is called secret
         getActivity().getMenuInflater().inflate(R.menu.secret, menu);
         //you mgiht want to inflate another one here    
         activated=0;
     }
     else if(activated==2)
     {
            //etc
     }        
     else
     {
            //etc
     }
 }