web-dev-qa-db-ja.com

ActionBarアクションアイテムが表示されない

私は非常に単純なコードを持っていますが、長いgoogle検索の後でも解決できない問題があります。 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);
}

そして、これは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>
24
Kilian Batzner

これは、サポートの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を確認してください!

69
ManosProm

アクションアイテムを非表示にするスタイルを使用していないことを確認してください。

たとえば、「Android:Theme.Holo.Light.DarkActionBar」を使用している場合、黒いアクションバーが表示されるため、黒いアイテムを見ることができません。

「Android:Theme.Holo.Light」に切り替えると表示されます。

(たとえば)res/values-v14/styles.xmlファイルを確認します。

6
Helge Mortensen

次のように、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>
1
Peshal

これを試して:

@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;
}
0
Steve Benett