Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/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中的fragment访问活动菜单项?_Android_Menuitem - Fatal编程技术网

如何从Android中的fragment访问活动菜单项?

如何从Android中的fragment访问活动菜单项?,android,menuitem,Android,Menuitem,我有一个类,扩展了ActionBarActivity,并使用了查看页面。我希望我的菜单在所有片段(3个选项卡)中都可用,并且不仅可以看到菜单(发生),而且可以实际响应每个菜单项的逻辑 在活动中: @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Ov

我有一个类,
扩展了ActionBarActivity
,并使用了
查看页面
。我希望我的菜单在所有片段(3个选项卡)中都可用,并且不仅可以看到菜单(发生),而且可以实际响应每个菜单项的逻辑

在活动中:

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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
 ...
return super.onOptionsItemSelected(item);
}
在每个片段中:

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

    @Override
        public boolean onOptionsItemSelected(MenuItem item) {
             ...
            return false;
      }

在片段中,当我从菜单中选择一个选项时,什么都没有发生,我不明白为什么。我做错了什么事,别看出来。任何想法都很好。多谢各位

在片段中,必须指定有一个带有setOptionsMenu(true)的菜单


ActionBar属于活动,而不是片段。为什么你不能在活动中处理它?另外,
ActionBarActivity
现在不推荐使用,如果可以的话,我会切换到
AppCompatActivity
。谢谢。我推迟了这项工作,但我改做了另一项活动。菜单项尚未反应。菜单项不会反应,因为它们是由活动处理的,而不是由片段处理的。
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}