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