私は非常に単純なコードを持っていますが、長い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>
これは、サポートの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
を確認してください!
アクションアイテムを非表示にするスタイルを使用していないことを確認してください。
たとえば、「Android:Theme.Holo.Light.DarkActionBar」を使用している場合、黒いアクションバーが表示されるため、黒いアイテムを見ることができません。
「Android:Theme.Holo.Light」に切り替えると表示されます。
(たとえば)res/values-v14/styles.xmlファイルを確認します。
次のように、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>
これを試して:
@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;
}