Inflate在XML中定义的ActionBarSherlock菜单

应该很简单,但可能不会。

在Android 3.0+中使用操作栏时,您可以select使用XML或代码定义菜单项。 我更喜欢在xml中对它们进行编码,因为操作栏感觉更多基于UI的function。

在平均一天,你会用这个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似乎是最令人愉快的使用和stream行的问题。 所以我用actionbarsherlock尝试了上面的内容,遗憾的是编译时间问题。

也就是说,inflater返回的Menu类是从“Android.view.menu”而不是“com.actionbarsherlock.menu”。 我在github上search了样本,但是他们都有代码中定义的菜单。

那么有没有人设法得到一个actionbarsherlock菜单与基于XML文件的布局?

Solutions Collecting From Web of "Inflate在XML中定义的ActionBarSherlock菜单"

尝试这个

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

我自己就有这个问题。

你想要做的是调用getSupportMenuInflater()而不是getMenuInflater()像这样:

 @Override public boolean onCreateOptionsMenu(Menu menu) { getSupportMenuInflater().inflate(R.menu.activity_main, menu); return true; }