如何在不同的Fragment中创建不同的菜单选项?

7

我希望在不同的片段中拥有完全不同的菜单选项。我遵循了这篇文章。但是我的片段菜单与活动菜单一起添加。但我不想在某些片段中有活动菜单。
SlidingDrawerActivity中:

  @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

在我的片段中:
public Friends_Status_Comment_Fragment(){
        setHasOptionsMenu(true);
    }
  @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.menu_add_comment,menu);
        super.onCreateOptionsMenu(menu, inflater);

    }

活动项目正在与片段菜单一起添加。如何停止它?
1个回答

17

我不确定我是否理解了你的问题 - 在你的代码片段中,应该清除菜单并创建一个新的 - 不要调用 super :) 代码可能如下所示:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
    menu.clear();
    inflater.inflate(R.menu.menu_add_comment,menu);
}

当我返回时,这些先前的菜单会重新出现吗? - Setu Kumar Basak
如果您的活动中有onCreateOptionsMenu()方法,则将重新创建菜单。 - Aleizdein

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接