Подтвердить что ты не робот

Элементы действий 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>
4b9b3361

Ответ 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;
}