Android 从操作栏中删除操作按钮

Android 从操作栏中删除操作按钮,android,android-fragments,android-actionbar,android-navigation,Android,Android Fragments,Android Actionbar,Android Navigation,我已经使用Fragment实现了ActionBar导航。在我的应用程序中,我有一个活动,其余的都是片段。在我的主要活动中,我实现了这样的菜单 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } 两个片段使用导航抽屉,在它们受人尊敬的片段中,我正在使用菜单按钮对项目

我已经使用Fragment实现了ActionBar导航。在我的应用程序中,我有一个活动,其余的都是片段。在我的主要活动中,我实现了这样的菜单

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
两个片段使用导航抽屉,在它们受人尊敬的片段中,我正在使用菜单按钮对项目进行排序

@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);
        inflater.inflate(R.menu.sort_button_shops, menu);
    }
现在的问题是,如果我打开片段1,它会很好地工作。当我打开片段2时,它显示了2个排序按钮,一个来自片段1,另一个来自片段2

我试着把按钮藏起来,但没用。 任何帮助都将不胜感激。 谢谢

尝试在片段的onResume()中使用此选项

MenuItem item = (MenuItem) findViewById(R.menu.activity_main);
item.setVisible(false);
this.invalidateOptionsMenu();

为新菜单充气时,您正在向旧的
菜单
对象添加新项目,这可能不是您想要的

试试这个:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    menu.removeItem(R.id.your_menu_item);
    getMenuInflater().inflate(R.menu.main, menu);
return true;
}

我在活动的声明部分制作了一些菜单项(我想隐藏/显示的按钮)。我在OnCreateOptions菜单中分配它们。然后,在代码中,我使用
myItem.setVisible(true | false)。很简单。我已经试过了,它不起作用。我很惊讶为什么菜单添加在片段1中,如片段2所示。因为每个片段都有自己的菜单。我知道这有点旧,但请看我的答案。this.invalidateOptions菜单();它需要Api 11,我也需要Api 10