FragmentActivity操作栏选项菜单

jam*_*mes 3 android fragment android-menu android-fragments android-fragmentactivity

我正在尝试将ActionBar按钮添加到FragmentActivity中,我无法弄清楚我做错了什么.在运行应用程序时,我看到的是ActionBar上的默认菜单按钮而不是我的按钮.

FragmentActivity:

   @Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.animalsmenu,menu);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

xml文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
    android:id="@+id/dogs"
    android:title="Dogs"
    android:orderInCategory="1"
    app:showAsAction="always">
</item>
Run Code Online (Sandbox Code Playgroud)

mah*_*que 12

使您的MainActivity扩展ActionBarActivity,而不是FragmentActivity.

ActionBarActivity本身延伸FragmentActivity所以你应该没事.


Squ*_*onk 5

FragmentActivity类扩展(从导出)的Activity类.Activity onCreateOptionsMenu(菜单菜单)方法的文档说明以下内容......

默认实现使用标准系统菜单项填充菜单.它们放在CATEGORY_SYSTEM组中,以便使用应用程序定义的菜单项正确排序.派生类应始终调用基本实现.

换句话说,将代码更改为......

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.animalsmenu, menu);
    super.onCreateOptionsMenu(menu);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

这会将您的菜单项膨胀到Menu传入的重写方法中,然后将其传递给方法的parent(super)版本.