android – Inflate ActionBarSherlock菜单以XML格式定义

应该足够简单但可能不是.

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上挖掘了样本,但是所有这些都在代码中定义了菜单.

那么有没有人想要使用基于XML文件的布局的actionbarsherlock菜单

解决方法

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

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...