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

时间:2015-06-29 19:00:23

标签: android menuitem

我有一个extends ActionBarActivity的课程,并且也使用了ViewPager。我希望我的菜单可以在所有片段(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;
      }

在片段中,当我从菜单中选择一个选项时,没有任何事情发生,我不明白为什么。我做错了什么,只是没有发现它。任何想法都会很棒。谢谢。

1 个答案:

答案 0 :(得分:1)

在您的片段中,您必须指定存在setOptionsMenu(true)

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