Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android fragments 如何将多个菜单充气到选项栏中?_Android Fragments_Android Menu - Fatal编程技术网

Android fragments 如何将多个菜单充气到选项栏中?

Android fragments 如何将多个菜单充气到选项栏中?,android-fragments,android-menu,Android Fragments,Android Menu,(首先,我通过HoloEverywhere使用ActionbarSherlock,尽管我不知道这与问题有关。) 我有一个有三个片段的活动。每个片段都有自己的菜单项,它们都共享一些菜单项。我已经从StackOverflow中学到,不允许在活动中添加菜单项,然后在片段中添加更多项(我已经尝试过了…它会导致奇怪的错误)。因此,活动没有菜单,但每个片段都有。但是,我仍在努力避免在每个片段的菜单xml中重复菜单项。为了做到这一点,我为每个片段提供了一个xml菜单,它们都共享一个xml菜单。例如,我有: f

(首先,我通过HoloEverywhere使用ActionbarSherlock,尽管我不知道这与问题有关。)

我有一个有三个片段的活动。每个片段都有自己的菜单项,它们都共享一些菜单项。我已经从StackOverflow中学到,不允许在活动中添加菜单项,然后在
片段中添加更多项(我已经尝试过了…它会导致奇怪的错误)。因此,
活动
没有菜单,但每个片段都有。但是,我仍在努力避免在每个片段的菜单xml中重复菜单项。为了做到这一点,我为每个片段提供了一个xml菜单,它们都共享一个xml菜单。例如,我有:

fragment_1_menu.xml
fragment_2_menu.xml 
all_fragments_menu.xml
Fragment1
中,我试图导入
Fragment1\u menu.xml
all\u fragments\u menu.xml

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
  inflater.inflate(R.menu.all_fragments_menu, menu);
  inflater.inflate(R.menu.fragment_1_menu, menu);
  super.onCreateOptionsMenu(menu, inflater);
}
当我这样做时,它几乎可以工作,但是在我的例子中,
all\u fragments\u menu
中的一个菜单项丢失了。我不是说菜单上有个空白。。。我的意思是它根本没有出现在菜单上。XML ID是唯一的,并且映射到R.java中的不同int。看起来应该能用。我对
Fragment2
做了同样的事情,只是
Fragment2\u menu.xml
没有任何项目,在这种情况下,所有菜单项目都会按预期显示


这样行吗?我只是错过了什么吗?

我想我已经找到了答案。我犯了一些错误,误解了原因。我需要:

  • 将菜单
    showAsAction
    术语更改为XML中的“始终”(叹气)
  • 调用
    onCreateOptions菜单()开头的menu.clear()
  • 执行“其他操作”,因为虽然这样可以直观地修复菜单,但按钮没有正确地报告按下。菜单工作正常,直到我旋转设备,此时按钮停止工作(尽管它们看起来是正确的)。但我认为这可能与我报道的问题无关