Android 2.x中使用actionbar - Actionbarsherlock

1. 范例说明
从Android 3.0开始,Android引入了ActoinBar,不得不说3.0之前android的标题栏确实比较丑,并且还没有任何功能。
之前很多应用的顶部栏很多都是仿苹果的,比如微信。随着Android 4.0和Android 4.2 的发布和慢慢的推广开来,很多应用也开始使用Google推广的UI设计,而ActionBar是其中相当重要的一部分。
无奈google没有发布3.0之前版本的ActionBar的兼容包。还好网上有提供开源的别人开发的,ActionBarShelock,简称ABS.
ABS的还有一项值得一提的优点就是,如果你在3.0以上的机子上使用,那么它会调用系统原生的ActionBar。另外它的使用方法和系统自身的方法相当相似,如果你ActionBar本身已经很熟悉了,那么ABS也能很快上手。
http://actionbarsherlock.com/下载对应的压缩包

2. 运行结果

3. 核心代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.menu_settings:
Toast.makeText(this, "ActionBarSherlock settings!", Toast.LENGTH_LONG).show();
break;
case R.id.homeAsUp:
Toast.makeText(this, "Home!", Toast.LENGTH_LONG).show();
break;
}
return super.onOptionsItemSelected(item);
}

4. 使用注意事项
1.自己的项目Buildtarget也要在4.0+,api 14+。不然有关Theme.Holo  xml文件读取不到资源,会导致R文件不能生成。
2.由于actionbarsherlock中自带了android_support_v4的包,所以你不用再导入一个了,以前导入过了也要删除,不然会产生冲突。
3.有时候会提示你的程序不是一个库的错误,只要在ActionbarSherlock中  properties-> android 中,将islibrary勾上就行了。
4.要使用Actionbar要继承sherlockactivity,在配置文件中声明activity时,要添加Theme设置才行,而且只能是三种或parent是这三种。

 

原文:http://eyeandroid-com.iteye.com/blog/1763442

时间: 2024-07-28 21:53:07

Android 2.x中使用actionbar - Actionbarsherlock的相关文章

Android 2.x中使用actionbar - Actionbarsherlock (2)

先前有一个项目,是基于android4.0来开发,使用到了Fragment及ActionBar,没打算支持android2.1-android2.3系列版本 写完之后,我将此应用发布到百度应用,一天以后,收到百度测试员反馈的信息:由于运行时出现"强制关闭错误",此应用未上架,当时一看,我猜想应该是由于2.x版本不支持fragment及Actionbar引起 正好今天有空,重新打开此项目,启动android 2.1的模拟器,运行应用,果然一样的"强制关闭"错误,查看了

settings-无法再android系统setting中的actionbar中添加switch

问题描述 无法再android系统setting中的actionbar中添加switch 在系统setting中添加了一个自己的选项.可惜在界面中的actionbar上无法添加switch 系统的蓝牙setting中有相同的结构.源码的添加switch代码如下: 大神们!!!求解啊!!!!!! Activity activity = getActivity(); Switch actionBarSwitch = new Switch(activity); if (activity instanc

Android中通过ActionBar为标题栏添加搜索及分享视窗

在Android3.0之后,Google对UI导航设计上进行了一系列的改革,其中有一个非常好用的新功能就是引入的ActionBar,他用于取代3.0之前的标题栏,并提供更为丰富的导航效果.ActionBar的主要目的是: 1.提供一个用于识别应用程序的标示和用户的位置的专用空间. 2.在不同的应用程序之间提供一致的导航和视觉体验. 3.突出Activity的关键操作(如"搜索"."创建"."共享"等),并且在可预见的方法内给用户提供快捷的访问.

图片-android 4.0中 WebP不显示问题(不考虑4.0以下系统)

问题描述 android 4.0中 WebP不显示问题(不考虑4.0以下系统) 由于图片太大,我们项目中使用了webp格式的图片,在适配三星s2,4.0系统的时候出现了这种问题,部分webp图片可以显示,一部分webp图片不显示,但是在4.3以上的手机测试时都没有问题,不知道怎么回事,有没有大神帮解答下!谢谢! 解决方案 Android4.0 Toast显示问题Android 4.0 系统语言预设问题android 4.0 显示系统

android 编写fragment中

问题描述 android 编写fragment中 一致出现程序很不幸,**运行已经停止的那个弹出框,是什么问题啊? 解决方案 请给出具体的错误信息,最好能附上相应的源代码以方便分析. 解决方案二: 请给出具体的错误信息,最好能附上相应的源代码以方便分析. 解决方案三: anr错误,可能logcat日志,找到你的代码出错行 解决方案四: 调试的错误日志信息是什么 解决方案五: LZ贴出错误日志才能知道错在哪里 解决方案六: 对话框是依靠Activity存在的,是不是你的Activity finis

android 在代码中如何设置 根视图的宽高?

问题描述 android 在代码中如何设置 根视图的宽高? android 在代码中如何设置 根视图的宽高? 如何设置视图container的宽高? public void popEdit(EditText _edit) { // edit=_edit; LinearLayout container=new LinearLayout(cont); container.setOrientation(LinearLayout.HORIZONTAL); LinearLayout.LayoutParam

android 4.3中一次完整的android源码截屏事件的捕获

1.背景 我们知道android提供了一个系统截屏功能,就是按住电源键和音量减的按键0.5秒,系统将执行截屏功能.所以要实现系统截屏的功能,就是要捕获系统的这两个组合键下面的函数,然后一层一层的向下挖掘.现在网上找到的版本是在Surface.java文件下存在ScreenShot()函数,是@hide的.但是这是之前版本的办法,在android4.3之后已经是不适用的,因为在/frameworks/base/core/java/android/view/的Surface.java下并没有Scre

在Android应用程序中使用Internet数据

常用缩略词 Ajax: Asynchronous JavaScript + XML API:应用程序编程接口 CSV:逗号分隔值 CSS:层叠样式表 DOM:文档对象模型 HTML:超文本标记语言 HTTP:超文本传输协议 IDL:接口 描述语言 JSON:Javascript 对象标识 SAX:XML 简单 API SDK:软件开发包 UI:用户界面 URL:统一资源定位符 XML:可扩展标记语言 3G:第三代手机技术标准 Android 应用程序必须访问位于 Internet 上的数据,而

开发可统计单词个数的Android驱动程序(中)

五.指定与驱动相关的信息 虽然指定这些信息不是必须的,但一个完整的Linux驱动程序都会指定这些与驱动相关的信息.一般需要为Linux驱动程序指定如下信息. 1. 模块作者:使用MODULE_AUTHOR宏指定. 2. 模块描述:使用MODULE_DESCRIPTION宏指定. 3. 模块别名:使用MODULE_ALIAS宏指定. 4. 开源协议:使用MODULE_LICENSE宏指定. 除了这些信息外,Linux驱动模块自己还会包含一些信息.读者可以执行下面的命令查看word_count.ko