7

シンプルである必要がありますが、そうでないかもしれません。Inflate ActionBarSherlockメニューはXMLで定義されています

Android 3.0以降でアクションバーを使用する場合、メニューアイテムをXMLまたはコードで定義することができます。私はアクションバーがUIよりも機能的であると感じるので、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> 

ようになり、メニュー

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    // Menu is defined inside 'res/menu/...xml 
    getMenuInflater().inflate(R.menu.activity_home, menu); 
    return true; 
} 

そして、あなたのXMLファイルにXMLを膨らませるためにこれを使用することになり、私が直面していますアクションバーを下位互換性のあるものにするという問題と、アクションバーセクロックが最も使いやすく普及しているようです。 私はactionbarsherlockで上記を試しました。悲しいことに、コンパイル時に問題があります。

つまり、inflaterによって返されるMenuクラスは 'Android.view.menu'であり、 'com.actionbarsherlock.menu'ではありません。私はgithub上のサンプルを掘りに行きましたが、それらのすべてはコードで定義されたメニューを持っています。

XMLファイルベースのレイアウトで動作するアクションバーシェルロックメニューを手に入れたい人は誰ですか?

答えて

23

この

@Override 
    public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) { 
     getSupportMenuInflater().inflate(R.menu.your_menu, menu); 
     return true; 
} 
+0

com.actionbarsherlock.view.Menu私は、このクラスを取得しますです:あなたがしたいこと

はそうのようなgetSupportMenuInflater()の代わりgetMenuInflater()コールです私のリンクhttp://stackoverflow.com/questions/12779308/how-to-use-menu-in-layout of question。上記の例をプロジェクトに使用できますか? –

+0

万が一Robolectricでこれをテストできますか?それは、リソースから私のメニューを膨らませることができないように見える、リソース$ NotFoundExceptionを出す。 –

5

はちょうどこの問題を自分で持っていたしてみてください。ここ..

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getSupportMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 
関連する問題