Элементы действий ActionBar, которые не отображаются
У меня очень простой код, но проблема, которую я не могу решить даже после длительного поиска в Google. Я хочу иметь некоторые элементы Action в своем ActionBar, но всякий раз, когда я запускаю приложение, все, что я вижу, это ActionBar с логотипом приложения и заголовком , но без действий.
Было бы здорово, если бы вы могли мне помочь, возможно, я просто пропустил самую очевидную вещь;)
Это метод в моей 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);
}
И это соответствующий .xml файл для ActionBar (с именем 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>
Ответы
Ответ 1
Это связано с тем, что если вы используете библиотеку поддержки AppCompat ActionBar и ActionBarActivity, вы должны создать свои меню в отличие от стандартного способа создания xml-меню в ActioBarSherlock или по умолчанию ActionBar.
Итак, попробуйте этот код:
<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, который следует использовать вместо этого!
GL
Ответ 2
Возможно, вы не используете стиль, который делает ваши действия невидимыми.
Например, если вы используете "android: Theme.Holo.Light.DarkActionBar", вы получаете черную панель действий, чтобы вы не могли видеть свои черные предметы.
Переключитесь на "android: Theme.Holo.Light", и они появятся.
Посмотрите файл (например) res/values-v14/styles.xml
Ответ 3
Здесь вы должны добавить меню в свой 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>
Ответ 4
Попробуйте следующее:
@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;
}