安卓 : Menu items can't be removed in the fragment

标签 android android-fragments menu menuitem

在执行某些操作后从 fragment 2 返回到 fragment 1 后,我需要删除膨胀的菜单。

我在生成popBackStack 后清除了菜单,但仍然无法删除菜单项。

 @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    menu.clear();
    if (savedItemsExist())
        inflater.inflate(R.menu.menu_saved_filters, menu);
    else
    {
        Log.i(TAG + " onCreateOptionsMenu", " going to delete");
        menu.clear();
    }
    super.onCreateOptionsMenu(menu, inflater);
}

@Override
public void onPrepareOptionsMenu(Menu menu) {
    menu.clear();
    if (savedItemsExist())
       getActivity().getMenuInflater().inflate(R.menu.menu_saved_filters, menu);
    else{
        menu.clear();
    }
    super.onPrepareOptionsMenu(menu);

}

最佳答案

如果您有与 Fragment 的生命周期相关联的菜单项,您应该改为使用 setHasOptionsMenu(true)在您的 Fragment 上,然后覆盖 onCreateOptionsMenu()在 Fragment 中,扩充您的 Fragment 菜单。

关于安卓 : Menu items can't be removed in the fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30418294/

相关文章:

PHP 类别菜单 (mySQL)

android - 滑动菜单 Android

css - 在 iPhone/iPad 上滚动时边栏导航菜单闪烁

android - 如何在 fragment (抽屉导航)中运行 Volley?

android - Android 中的 fragment 间通信

Java:获取键集值

java - android - 英镑符号被损坏

android - 为什么 Fragment 的 ScrollView 中的 LinearLayout 是 NULL 对象?

android - 如何在 android 7.0 及更高版本中保持 Activity 套接字连接?

android - 如何将特定的 CSV 内容显示到单击的列表项?