Android ListFragment-如何添加菜单?

Android ListFragment-如何添加菜单?,android,android-layout,android-fragments,android-listfragment,Android,Android Layout,Android Fragments,Android Listfragment,我有一个ListFragment,我必须添加一个菜单。这是我的代码: 列表用户菜单: <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/any_option" android:title="In Context Menu" /> </menu> 但是我看不到我的菜单…为什么?如何选择注册选项菜单?谢谢 在MainAc

我有一个ListFragment,我必须添加一个菜单。这是我的代码: 列表用户菜单:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:id="@+id/any_option"
    android:title="In Context Menu" />
</menu>

但是我看不到我的菜单…为什么?如何选择注册选项菜单?谢谢

在MainActivity中使用此示例代码

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);



        SubMenu subMenu1 = menu.addSubMenu("Action Item");
        subMenu1.add(0, 1, 0, "Sample");
        subMenu1.add(0, 2, 0, "Menu");
        subMenu1.add(0, 3, 0, "Sair");

        MenuItem subMenu1Item = subMenu1.getItem();
        subMenu1Item.setIcon(R.drawable.ic_title_share_default);
        subMenu1Item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);




        return true;
    }

如果可以向片段添加菜单,请在片段中使用以下代码:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
setHasOptionsMenu(true);
}


使用SetHasOptions菜单将允许您的片段显示菜单。

是的,您可以将菜单添加到ListFragment,将以下代码添加到您的ListFragment

   @Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    setHasOptionsMenu(true);
}
然后添加片段版本onCreateOptionsMenu()方法,如下所示

   @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {     
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.menu_xml, menu);
}
@Sherlock Yiu忘记将“super.onActivityCreated(savedInstanceState);”添加到onActivityCreated()方法中,其余都一样

另外,不要忘记将“android-support-v4.jar”添加到项目库中


上面的代码片段对我有用。

在我的FragmentActivity中,为什么我不能覆盖OnCreateOptions菜单?我使用android support v4。代码不应该添加到FragmentActivity中,它应该添加到您的Fragment/ListFragment中
   @Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    setHasOptionsMenu(true);
}
   @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {     
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.menu_xml, menu);
}