OptionsMenu没有出现

时间:2015-04-09 08:53:59

标签: android android-menu

我有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"
    />

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

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

在API级别11或更高级别

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

API等级7或更高

您必须使用appcompat v7库,您可以找到如何添加它here

答案 1 :(得分:0)

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

中设置setHasOptionsMenu(true);

答案 2 :(得分:0)

只需调用onCreateOptionMenu的超级构造函数就可以了

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