java - 如何更改不同 fragment 中的选项菜单?

标签 java android android-fragments android-actionbar android-menu

我有一个带有菜单的 fragment :

public class FragmentA extends Fragment {

    public FragmentA() {
        setHasOptionsMenu(true);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        setHasOptionsMenu(true);
    }

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

我想更改菜单但它不起作用并保留旧的操作菜单

fragment B 与上面相同,但具有不同的 inflate XML 菜单。

public class FragmentB extends Fragment {

    public FragmentB() {
        setHasOptionsMenu(true);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        setHasOptionsMenu(true);
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.**action_ranking**, menu);
        super.onCreateOptionsMenu(menu, inflater);
    }
}

编辑:

对于不同的 fragment 使用不同的菜单布局以及对主要 Activity 和不同的 id 使用 1 个菜单布局可能很有用

最佳答案

setHasOptionsMenu(true) 放入构造函数中并膨胀 fragment 特定菜单。

public class FragmentA extends Fragment {

    public FragmentA() {
       setHasOptionsMenu(true);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        setHasOptionsMenu(true);
    }

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

主要 Activity 中的菜单

public class MainActivity extends Activity {
    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.main_menu, menu);
        super.onCreateOptionsMenu(menu, inflater);
    }
}

关于java - 如何更改不同 fragment 中的选项菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23338937/

相关文章:

java - ibatis isNotEmpty 具有多个变量

android - Viewpager 在滑动和选项卡上禁用最后一页

android-fragments - 视频在上一个 fragment 的 onCreate 上闪烁一次

android - ViewPager 的 instantiateItem 中的类转换异常

android - 关于 NotifyDataSetChanged

java - 使用自己创建的jar文件时出现ClassNotFoundException

java - 方法调用仅适用于单击按钮

java - 如何从 EclEmma 的覆盖率计算中排除类,而不实际将它们从覆盖率本身中排除

java - 如何解决 "The content of the adapter has changed but ListView did not receive a notification”异常

java - 在android中使用google place api