zoukankan      html  css  js  c++  java
  • Android ActionBarSherlock使用教程

    本文转自http://www.chenwg.com/android/actionbarsherlock%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B.html

    注:目前自己将ActionBarSherlock和所要添加的应用放到同一目录下

    Android3.0开始就提供了ActionBar,这让Android的用户体验强了好多,但是这个ActionBar在Android3.0以下是不支持的,谷歌也没推出什么解决方案,不过呢,没有什么是实现不了的,有github上有牛人放出了开源的ActionBarSherlock,可以在Android2.x上实现ActionBar,如果你在Android3.0的手机上使用,它会调用原生的ActionBar。

    ActionBarSherlock在github上的地址是:https://github.com/JakeWharton/ActionBarSherlock,它的官网是:http://actionbarsherlock.com/,下载即可,现在最新版本是4.2.0.

    下载好,就解压出来,有三个文件夹,其实library就是Android公共库的使用,也就是将一些共同的东西抽取出来,包括java文件,资源文件等。

    我的开发工具是eclipse,并安装了Android-maven,然后将这个library项目以maven项目导入即可。

    接着新建一个Android工程,然后右键选择properties,再选择Android,接着添加library进来,如下:

    1.修改项目的AndroidManifest.xml文件,将Android的Theme,也就主题改为如下:

    android:theme=”@style/Theme.Sherlock.Light”  ,也就是使用ActionBarSherlock里的主题;

    2.修改MainActivity.java文件,默认生成的MainActivity类是继承Activity的,现在将Activity修改成SherlockActivity;

    3.修改menu文件夹下的main.xml文件如下:

    <menu xmlns:android="http://schemas.android.com/apk/res/android" >
     
        <item
            android:id="@+id/add"
            android:icon="@android:drawable/ic_menu_add"
            android:showAsAction="ifRoom"
            android:title="@string/add"
            android:titleCondensed="@string/add">
        </item>
        <item
            android:id="@+id/delete"
            android:icon="@android:drawable/ic_menu_delete"
            android:showAsAction="ifRoom"
            android:title="@string/delete"
            android:titleCondensed="@string/delete">
        </item>
     
    </menu>

    4.要使ActionBar显示menu按钮,得重写MainActivity中的onCreateOptionsMenu方法,还要导入ActionBarSherlock中的Menu、MenuItem包,如下:

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

    运行下模拟器,如下:

    另一种版本使用说明

     1.在项目中add library。方法是右击属性,然后再android类中,点击add library,选择我们刚刚导入的ActionBarSherlock库的jar

     

    2.导入后,可能有些人会出现jar包冲突,这是因为abs和自己项目中同时存在android-support-v4这个包,这时只要删掉自己项目中的这个jar包就ok了。

    至此,我们就能在项目中使用abs 的 actionbar了

    3.修改AndroidManifest.xml,添加或修改代码,如下所示

    <uses-sdk
        android:minSdkVersion="7"
        android:targetSdkVersion="16" />
    
    <uses-feature
        android:name="android.hardware.touchscreen"
        android:required="false" />

    在application节增加以下内容 
    android:theme="@style/Theme.Sherlock" 

    <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/Theme.Sherlock" >

    设置在2.x下使用actionBar样式来显示界面,不然会显示为菜单样式

    4.修改相应类
    相应类的对应关系
    android.app.Activity->com.actionbarsherlock.app.SherlockActivity
    android.app.Fragment->android.support.v4.app.Fragment
    android.app.FragmentTransaction->android.support.v4.app.FragmentTransaction
    android.view.Menu->com.actionbarsherlock.view.Menu
    android.view.MenuItem->com.actionbarsherlock.view.MenuItem

    方法对应关系
    getFragmentManager->getSupportFragmentManager
    getMenuInflater->getSupportMenuInflater
    getActionBar->getSupportActionBar
    以上左边对应的为Activity的方法,右边对应的为SherlockActivity的方法

    另外我在库中发现com.actionbarsherlock.app.SherlockFragmentActivity这个类,试了下和SherlockActivity差不多,某些情况下可以混合使用这两个类

    5.把不需要的包从import导入列表中注释掉,至此,项目已经可以在android2.x-4.x中成功运行
    ----------

  • 相关阅读:
    yzoj P2344 斯卡布罗集市 题解
    yzoj P2350 逃离洞穴 题解
    yzoj P2349 取数 题解
    JXOI 2017 颜色 题解
    NOIP 2009 最优贸易 题解
    CH 4302 Interval GCD 题解
    CH4301 Can you answer on these queries III 题解
    Luogu2533[AHOI2012]信号塔
    Luogu3320[SDOI2015]寻宝游戏
    Luogu3187[HNOI2007]最小矩形覆盖
  • 原文地址:https://www.cnblogs.com/sishuiliuyun/p/3082056.html
Copyright © 2011-2022 走看看