android – 如何在onCreateOptionsMenu中动态更改菜单

我有小问题,我想用动态菜单解决它:
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只被调用一次,那么在需要时我怎么能/应该“重新加载”整个菜单呢?

解决方法

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

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...