Android 在CreateOptionMenu图标上隐藏某些活动和片段的操作栏

Android 在CreateOptionMenu图标上隐藏某些活动和片段的操作栏,android,android-actionbar,Android,Android Actionbar,使用带有actionbar类的google导航抽屉实现了一个滑动菜单。我的问题是每次活动都会显示OnCreateOptions菜单。如何使OnCreateOptions菜单图标任意可见和不可见。有什么想法吗 public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) { com.actionbarsherlock.view.MenuInflater inflater = getSuppor

使用带有actionbar类的google导航抽屉实现了一个滑动菜单。我的问题是每次活动都会显示OnCreateOptions菜单。如何使OnCreateOptions菜单图标任意可见和不可见。有什么想法吗

 public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
          com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
          inflater.inflate(R.layout.menu, menu);
    }

    public boolean onOptionsItemSelected(MenuItem item) {
          // Handle item selection
          switch (item.getItemId()) {
          case R.id.settings:
              Intent i=new Intent(class1.this, clas2.class);
              startActivity(i);
              return true;
          }
          return false;
    }

您可以根据需要创建菜单运行时或具有不同的菜单布局,并在活动集的
oncreateoptions menu
中设置该布局或运行时创建这些菜单,或者如果您不想显示菜单图标,只需执行
menu.clear()

活动A

        public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
                  com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
                  inflater.inflate(R.layout.menu_a, menu);
            }

            public boolean onOptionsItemSelected(MenuItem item) {
                  // Handle item selection
                  switch (item.getItemId()) {
                  case R.id.settings:
                      Intent i=new Intent(class1.this, clas2.class);
                      startActivity(i);
                      return true;
                  }
                  return false;
            }
活动B

        public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
                  menu.clear();
                  com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
                  inflater.inflate(R.layout.menu_b, menu);

                  // OR
                  Drawable tmpDrawable = getResources().getDrawable(R.drawable.share_sharingicon);
                    // tmpDrawable.setColorFilter(getResources().getColor(R.color.colorGrayFont), PorterDuff.Mode.MULTIPLY);
                  menu.add("ShareMap").setIcon(tmpDrawable).setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS);
                  menu.add("Directions").setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS);
            }

            public boolean onOptionsItemSelected(MenuItem item) {
                  // Handle item selection
                  switch (item.getItemId()) {
                  case R.id.ShareMap:
                      Intent i=new Intent(class1.this, clas2.class);
                      startActivity(i);
                      return true;
                  case R.id.Directions:
                      Intent i=new Intent(class1.this, clas2.class);
                      startActivity(i);
                      return true;
                  }
                  return false;
            }

要在操作栏上隐藏或显示某些图标,您需要覆盖方法:

@凌驾 公共布尔值OnPrepareOptions菜单(菜单) {

}


此外,当操作栏项因R.id.action\u您的图标发生更改时,您需要“SupportInvalidateOptions菜单()”使活动的选项菜单无效。您的图标是指OnCreateOptions菜单id操作菜单中的图标项id否我想从标题隐藏OnCreateOptions菜单您的意思是在操作栏上不显示任何内容?如果是这样的话,我想就评论一下你的“onCreateOptionMenu”吧,这就是你想要的吗?对于一些片段,从标题本身隐藏onCreateOptionMenu图标。我使用的是滑动菜单,对于某些片段,不需要onCreateOptionMenu图标。需要从操作栏标题栏隐藏它吗
MenuItem your_icon = menu.findItem(R.id.action_your_icon);


//show icon
your_icon.setvisible(true);
//hide icon
your_icon.setvisible(false);

...