我有小问题,我想用动态菜单解决它:
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
switch(Globals.editMode){
case Globals.MODE_NONE:
getSupportMenuInflater().inflate(R.menu.imagehandlingmain_menu, menu);
break;
case Globals.MODE_MOVE:
getSupportMenuInflater().inflate(R.menu.savecancel_menu, menu);
break;
case Globals.MODE_ROTATE:
getSupportMenuInflater().inflate(R.menu.savecancel_menu, menu);
break;
case Globals.MODE_SCALE:
getSupportMenuInflater().inflate(R.menu.savecancel_menu, menu);
break;
}
//getSupportMenuInflater().inflate(R.menu.imagehandlingmain_menu, menu);
return true;
我有两个菜单,菜单,您可以在其中选择工作模式,而在某些工作模式菜单中,菜单应更改为“取消”和“保存”。
所以我的想法是你进入其中一种模式,然后如果你决定不保存你的工作,你可以取消它并返回到以前的状态。
现在,我假设onCreateOptionsMenu只被调用一次,那么在需要时我怎么能/可以“重新加载”整个菜单?
答案 0 :(得分:27)
您可以使用Activity.invalidateOptionsMenu()
。这 - 顾名思义 - 将使当前菜单无效,因此将再次调用Activity.onPrepareOptionsMenu()
。