十分に単純であるべきですが、そうではないかもしれません。
Android 3.0 以降でアクション バーを使用する場合、メニュー項目を XML またはコードで定義するオプションがあります。アクションバーは機能的というよりもUIベースに感じられるので、xmlでコーディングすることを好みます。
通常、これを使用して xml をメニューにインフレートします。
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Menu is defined inside 'res/menu/...xml
getMenuInflater().inflate(R.menu.activity_home, menu);
return true;
}
XML ファイルは次のようになります。
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/menu_settings"/>
<item
android:id="@+id/menu_item_menu"
android:icon="@drawable/menu_off_128"
android:showAsAction="ifRoom|withText"
android:title="@string/inbox_string"/>
<item
android:id="@+id/menu_item_gallery"
android:icon="@drawable/gallery_off_128"
android:showAsAction="ifRoom|withText"
android:title="@string/gallery_string"/>
<item
android:id="@+id/menu_item_inbox"
android:icon="@drawable/inbox_off_128"
android:showAsAction="ifRoom|withText"
android:title="@string/inbox_string"/>
<item
android:id="@+id/menu_item_contact"
android:icon="@drawable/phone_off_128"
android:showAsAction="ifRoom|withText"
android:title="@string/contact_string"/>
</menu>
今、私はアクションバーを下位互換にするという問題に直面しており、actionbarsherlock が最も使いやすく人気があるようです。だから私はactionbarsherlockで上記を試しましたが、悲しいことにコンパイル時間の問題があります。
つまり、インフレータによって返される Menu クラスは、「com.actionbarsherlock.menu」ではなく「Android.view.menu」からのものです。私は github でサンプルを掘り下げましたが、それらのすべてにコードで定義されたメニューがあります。
XMLファイルベースのレイアウトで動作するactionbarsherlockメニューを手に入れた人はいますか?