Android 2.x中使用actionbar - Actionbarsherlock (2)
先前有一个项目,是基于android4.0来开发,使用到了Fragment及ActionBar,没打算支持android2.1-android2.3系列版本
写完之后,我将此应用发布到百度应用,一天以后,收到百度测试员反馈的信息:由于运行时出现"强制关闭错误",此应用未上架,当时一看,我猜想应该是由于2.x版本不支持fragment及Actionbar引起
正好今天有空,重新打开此项目,启动android 2.1的模拟器,运行应用,果然一样的"强制关闭"错误,查看了下错误信息,果然是因为Fragment,ActionBar在2.x下不支持所引起,正好前段时间了解到ActionBarSherlock可以在2.x及4.x等各版本支持Fragment,ActionBar,于是特意使用ActionBarSherlock对项目进行了升级
升级步骤
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"
设置在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中成功运行
----------
actionbarsherlock库下载(abs4.2.0.jar,版本4.2.0):
http://www.kuaipan.cn/file/id_10148578223724194.html
原文:http://my.oschina.net/chenzz/blog/119586
Android 2.x中使用actionbar - Actionbarsherlock (2)的更多相关文章
- Android 2.x中使用actionbar - Actionbarsherlock
1. 范例说明 从Android 3.0开始,Android引入了ActoinBar,不得不说3.0之前android的标题栏确实比较丑,并且还没有任何功能. 之前很多应用的顶部栏很多都是仿苹果的,比 ...
- android中的ActionBar和ToolBar
一.ToolBar 1.概述 Google在2015的IO大会上发布了系列的Material Design风格的控件.其中ToolBar是替代ActionBar的控件.由于ActionBar在各个安卓 ...
- android之官方导航栏ActionBar(三)之高仿优酷首页
一.问题概述 通过上两篇文章,我们对如何使用ActionBar大致都已经有了认识.在实际应用中,我们更多的是定制ActionBar,那么就需要我们重写或者定义一些样式来修饰ActionBar,来满足具 ...
- 这些Android系统样式中的颜色属性你知道吗?
Android 系统样式中的颜色属性 推荐阅读看完后彻底搞清楚Android中的 Attr . Style .Theme 几个常用的颜色属性 先放上一张经典的图片,图片来自网络. 这张图在网上很是流传 ...
- Eclipse与Android源码中ProGuard工具的使用
由于工作需要,这两天和同事在研究android下面的ProGuard工具的使用,通过查看android官网对该工具的介绍以及网络上其它相关资料,再加上自己的亲手实践,算是有了一个基本了解.下面将自己的 ...
- Android源码中内置包含so文件的APK文件
方法一: 在packages/apps下面以需要预置的APK名字创建文件夹,以预置一个名为Test的APK为例 将Test.apk放到packages/apps/Test下面 在packages/ap ...
- Unity在Android和iOS中如何调用Native API
本文主要是对unity中如何在Android和iOS中调用Native API进行介绍. 首先unity支持在C#中调用C++ dll,这样可以在Android和iOS中提供C++接口在unity中调 ...
- Android应用开发中出现appcompat-v7错误
博客Melon麦东=原创记录 经常很多朋友在Android应用开发过程中,遇到创建的好的Android工程,出现appcompat-v7错误,这因为Android从5.0开始,引入了此项目库,解决方案 ...
- android Activity类中的finish()、onDestory()和System.exit(0) 三者的区别
android Activity类中的finish().onDestory()和System.exit(0) 三者的区别 Activity.finish() Call this when your a ...
随机推荐
- cobbler配置
:ks脚本关闭pxe,这样就不会重复安装 sed -i 's/pxe_just_once: 0/pxe_just_once: 1/g' /etc/cobbler/settings 6:TFTP服务器 ...
- Web利器---fidder使用
fiddler工具,主要看中其三点优势:1.功能强大,其他工具有的功能它也有,其他工具没有的功能它也有,支持http,https,ftp等协议:2.完全免费,长期免费.3.所有的浏览器可以使用,所有的 ...
- iOS 时间戳的转换
在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理.例如: //实例化一个NSDateFormatter对象 NSDateForma ...
- java日志框架slf4j与log4j
日志记录自然是非常重要的,但恐怕能记住slf4j与log4j等日志框架配置的人就很少了,这个东西不难,只是配置好后很少会去动它,开发新项目一般也是从其他项目拷贝,或者参照文档 废话不多说,先说log4 ...
- Android 自定义View 三板斧之三——重写View来实现全新控件
通常情况下,Android实现自定义控件无非三种方式. Ⅰ.继承现有控件,对其控件的功能进行拓展. Ⅱ.将现有控件进行组合,实现功能更加强大控件. Ⅲ.重写View实现全新的控件 本文来讨论最难的一种 ...
- 【腾讯Bugly干货分享】腾讯验证码的十二年
本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/581301b146dfb1456904df8d Dev Club 是一个交流移动 ...
- dojo/dom-construct.toDom方法学习笔记
toDom方法用来将html标签字符串转化成DOM节点.1.7之后toDom方法被分配到了dom-construct模块. require(["dojo/dom-construct" ...
- Unity多单位战斗寻路问题的一种解决办法
Unity多单位战斗寻路问题的一种解决办法 Unity提供了NavMesh 导航组件 NavMesh是在实践中通用性最好的一种导航方式,但是Unity的实现并没有完全提供一个开放自由的API. 主 ...
- 细说.NET中的多线程 (四 使用锁进行同步)
通过锁来实现同步 排它锁主要用来保证,在一段时间内,只有一个线程可以访问某一段代码.两种主要类型的排它锁是lock和Mutex.Lock和Mutex相比构造起来更方便,运行的也更快.但是Mutex可以 ...
- 实战使用Axure设计App,使用WebStorm开发(4) – 实现页面UI
系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目 实战使 ...