OptionsMenu 没有出现

OptionsMenu doesn`t appear

我有 ListFragment,我想管理 ActionBar。然而,它并没有出现在屏幕上。
这是 ListFragment:

的代码
@Override
public void onCreate(Bundle saved) {
    super.onCreate(saved);
    setHasOptionsMenu(true);
    ...
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.fragment_crime_list, menu);
}

fragment_crime_list:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item 
        android:id="@+id/menu_item_new_crime"
        android:icon="@android:drawable/ic_menu_add"
        android:title="@string/new_crime"
        android:showAsAction="ifRoom|withText" />
</menu>

在我的 manifest.xml 中我只设置了 minSdkVersion 但它没有帮助

<uses-sdk
    android:minSdkVersion="8"
    />

有什么建议吗?

对于片段,您需要在 oncreatView()

中设置setHasOptionsMenu(true);

只需调用 onCreateOptionMenu 的超级构造函数即可

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

您的 activity 默认情况下不添加操作栏,它也在 API 级别 11 而不是 8 中添加。因此,要添加它,您有两个选项,我将在此处说明

API 11 级或更高

操作栏包含在使用 Theme.Holo 主题(或其后代之一)的所有活动中,当 targetSdkVersion 或 minSdkVersion 属性设置为“11”或更高时,这是默认主题.如果您不想要 activity 的操作栏,请将 activity 主题设置为 Theme.Holo.NoActionBar.

API 7 级或更高

您必须使用 appcompat v7 库,您可以找到确切的添加方法 here