7

我有一个小问题,我想用动态菜单解决它:

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 只被调用一次,那么我如何/应该在需要时“重新加载”整个菜单?

4

1 回答 1

29

您可以使用Activity.invalidateOptionsMenu(). 这 - 顾名思义 - 将使当前菜单无效,因此Activity.onPrepareOptionsMenu()将再次调用。

于 2012-09-24T08:15:21.597 回答