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中成功运行 ----------

Android ActionBarSherlock使用教程的更多相关文章

  1. Android Studio2.0 教程MAC版 -快捷键篇

    本文转至 Android Studio2.0 教程从入门到精通MAC版 - 提高篇 ( OPEN 开发经验库) 第二篇我们开发了一个Hello World应用,并介绍Android Sutdio的界面 ...

  2. Android图像处理实例教程

    Android图像处理实例教程 原始出处 http://vaero.blog.51cto.com/4350852/856750

  3. android用户界面详尽教程实例

    android用户界面详尽教程实例 1.android用户界面之AlarmManager教程实例汇总http://www.apkbus.com/android-48405-1-1.html2.andr ...

  4. [转]Android Studio系列教程六--Gradle多渠道打包

    转自:http://www.stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/ Android Studio系列教程六--Grad ...

  5. 【Android进阶系列教程】前言

    起因 因为初学Android的时候还没有写博客的意识,现在Android的门是入了,正在进阶的道路上行走,但是就这一路也走了不少的弯路.我想,总得来说Android入门还是比较容易的,网络资源比较丰富 ...

  6. Android Studio使用教程(二)

    以下是本次Google I/O大会发布的IDE Android Studio使用教程第二篇: 在Android Studio使用教程(一)中简要介绍了Android Studio的基本使用,包括安装. ...

  7. Android Studio系列教程六--Gradle多渠道打包

    Android Studio系列教程六--Gradle多渠道打包 2015 年 01 月 15 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzh ...

  8. Android Studio系列教程五--Gradle命令详解与导入第三方包

    Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...

  9. Android Studio系列教程四--Gradle基础

    Android Studio系列教程四--Gradle基础 2014 年 12 月 18 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzhang ...

随机推荐

  1. Think Python - Chapter 11 - Dictionaries

    Dictionaries A dictionary is like a list, but more general. In a list, the indices have to be intege ...

  2. PAT (Basic Level) Practise:1002. 写出这个数

    [题目链接] 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各 ...

  3. iOS学习笔记---oc语言第二天

    实例变量与方法 一.实例变量的可见度 二.方法 oc中的方法分两种:类方法和实例方法 类方法:只能类使用 eg:+ (id)alloc  注:类方法中不能使用实例变量 实例方法:只能对象使用,eg:- ...

  4. python 数据结构之双向链表的实现

    和单链表类似,只不过是增加了一个指向前面一个元素的指针而已. 示意图: python 实现代码: #!/usr/bin/python # -*- coding: utf-8 -*- class Nod ...

  5. matplotlib example

    # This file generates an old version of the matplotlib logofrom __future__ import print_function# Ab ...

  6. 获取元素高度及定位js

    <script type="text/javascript">                                   $(window).scroll(f ...

  7. JavaWeb学习记录(二十一)——国际化处理

    ¨国际化又称为 i18n:internationalization ¨对于软件中的菜单栏.导航条.错误提示信息,状态信息等这些固定不变的文本信息,可以把它们写在一个properties文件中,并根据不 ...

  8. 使用配置方式进行ssh的整合以及管理员管理的案例(二)

    (续) 删除Hibernate配置文件的写法: 在applicationContext.xml中添加数据库操作的相关配置: <!-- 配置数据库连接池 -->    <bean id ...

  9. HDU 1159 Common Subsequence

    HDU 1159 题目大意:给定两个字符串,求他们的最长公共子序列的长度 解题思路:设字符串 a = "a0,a1,a2,a3...am-1"(长度为m), b = "b ...

  10. JAVA条件语句

    1.if if (判断条件) { 条件成立时执行的代码 } 2.if..else if (判断条件) { 条件成立时执行的代码 } else { 条件不成立时执行的代码 } 3.多重if if (条件 ...