Android ListFragment-如何添加菜单?
我有一个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
<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);
}