应该足够简单但可能不是.
在Android 3.0中使用操作栏时,您可以选择以XML或代码定义菜单项.我更喜欢在xml中对它们进行编码,因为动作条感觉基于UI而不是功能.
平均每天,您可以使用它将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尝试了上面的内容,遗憾的是有编译时问题.
即,inflater返回的Menu类来自’Android.view.menu’而不是’com.actionbarsherlock.menu’.我在github上挖掘了样本,但是所有这些都在代码中定义了菜单.
解决方法
试试这个
@Override public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) { getSupportMenuInflater().inflate(R.menu.your_menu,menu); return true; }