我有一个非常简单的代码,但即使经过长时间的谷歌搜索,我也无法解决这个问题。我希望在ActionBar中有一些Action Item,但每当我运行App时,我看到的只是一个带有App徽标和标题的ActionBar,但没有Action Item 。
如果你可以帮助我,那将是很棒的,可能我只是错过了最明显的事情;)
这是我的ActionBarActivity中的方法:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}
这是ActionBar的相关.xml文件(名为main_activity_actions.xml):
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="always" />
<item android:id="@+id/action_compose"
android:icon="@drawable/ic_action_compose"
android:title="@string/action_compose"
android:showAsAction="always"/>
</menu>
答案 0 :(得分:69)
这是因为如果你使用支持AppCompat ActionBar库和ActionBarActivity,你应该创建一个不同于在ActioBarSherlock或默认ActionBar中创建XML菜单的标准方式的菜单。
所以试试这段代码:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
app:showAsAction="always" />
<item android:id="@+id/action_compose"
android:icon="@drawable/ic_action_compose"
android:title="@string/action_compose"
app:showAsAction="always"/>
</menu>
并报告是否有效。
注意:请检查应使用的额外前缀xmlns:app
!
答案 1 :(得分:6)
请确保您没有使用使您的操作项不可见的样式。
例如,如果您使用“android:Theme.Holo.Light.DarkActionBar”,则会出现黑色操作栏,因此您将无法看到黑色物品。
切换到“android:Theme.Holo.Light”,它们会显示出来。
查看文件(例如)res / values-v14 / styles.xml
答案 2 :(得分:1)
在这里,您需要在xml中添加菜单,如下所示:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_settings"
android:orderInCategory="0"
android:showAsAction="always"
android:icon="@drawable/menu">
<menu>
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="always" />
<item android:id="@+id/action_compose"
android:icon="@drawable/ic_action_compose"
android:title="@string/action_compose"
android:showAsAction="always"/>
</menu>
</item>
</menu>
答案 3 :(得分:0)
试试这个:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return true;
}