ActionBarSherlock的使用--------(一)配置
ActionBarSherlock的使用——(一)配置
简介:
从android 3.0开始,android加入了一个新的api,actoinbar,随着android 4.0的发布和慢慢的推广开来,很多应用也开始使用google推广的ui设计,而actionbar是其中相当重要的一部分。本人现在对IOS的那种设计有点厌烦,对安卓4.0的设计风格比较感兴趣,然而为了程序的兼容性,又要考虑低版本的问题,所以在这里需要使用到兼容包。
无奈google没有发布3.0之前版本的actionbar的兼容包。还好网上有提供开源的别人开发的,actionbarshelock,以下简称abs.
abs可以让2.x的系统也能使用actionbar,另外现在abs也提供了很多其他3.0以后才提供的功能,比如fragement。这里就只介绍actionbar的使用。
abs的还有一项值得一提的优点就是,如果你在3.0以上的机子上使用,那么它会调用系统原生的actionbar。另外它的使用方法和系统自身的方法相当相似,如果你actionbar本身已经很熟悉了,那么abs也能很快上手。
下载:
程序的下载可以到官网:http://actionbarsherlock.com/download.html 对于WINDOWS的同学来说下载.zip包即可,截止到我发文时,ABS的版本是4.3.1。
在官网中还有“USAGE”的链接,由于软件在不断的更新,教程肯定有力所不能及之处,所以具体的地方还是要看官网的使用说明。
引用:
1、下载好.zip文件以后,将其中的actionbarsherlock文件夹解压到硬盘上的一个位置。
2、打开Eclipse,选择:FIle——New——Project——Android project from Existing Code...然后选择要导入的文件夹,finish就好。
3、右击导入的工程,(应该叫actionbarsherlock),选择最下面一项,属性,在打开的对话框里找“android”,确认那个“is library”被勾选。这样这个项目才可以被当做一个库,让我们的项目来引用。
4、打开个人项目的属性,(在本例中是actionBar),在android中添加Library,点击Add,并把我们刚才导入的库添加进去,有绿色对勾表示添加成功。
5、导入成功后,通常会出现错误。错误的原因是android-support-v4.jar的重复引用。
因为在abs里引用了这个包,而我们的项目里也有这个包,而一般来说这两个包是不一样的,所以会发生错误。只需把两个包换成一样的即可。
如:把abs的libs文件夹里的android-support-v4.jar,复制到我们项目的libs文件夹下一份,并且覆盖掉。
使用:
导入成功后,我们要给我们的程序添加ActionBarSherlock.
1、在程序的AndroidManifest.xml文件中,修改主题,改为:
android:theme="@style/Theme.Sherlock.Light"
2、打开程序文件,如:MainActivity.java,引用:
[java] view plaincopy
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.OnNavigationListener;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
注意:上面的引用不一定全都会用到。
3、如果要让actionbar显示一些menu按钮,那么我们需要重写activity中的onCreateOptionsMenu,对应的还要重写onOptionsItemSelected来响应这些按钮的点击。另外该activity必须继承ShelockActivity
public class MainActivity extends SherlockActivity { @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); } @Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.menu_delete:
Toast.makeText(this, "delete", Toast.LENGTH_SHORT).show();
break; }
return super.onOptionsItemSelected(item);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.activity_main, menu);
return super.onCreateOptionsMenu(menu);
} }
其中,R.menu.activity_main是菜单的布局文件。内容如下
[html] view plaincopy
<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="添加"
android:titleCondensed="添加">
</item> </menu>
这篇先写到这里,希望和大家能给这个文章一些指点。
转载请注明来自:http://blog.csdn.net/djy1992/article/details/20372003
ActionBarSherlock的使用--------(一)配置的更多相关文章
- ActionBarSherlock的使用——(一)配置
小弟照着上面的去做,后来样式不一致,发现是用了虚拟机的缘故(虚拟机版本,API-8 2.2);就行了. 还有下面的第二步: 2.打开Eclipse,选择:FIle——New——Project——And ...
- Android 开发自己的网络收音机2——电台列表(SlidingMenu侧滑栏)
上一篇文章总体规划了这个项目的情况,今天讲讲实现电台列表.今天其实主要想讲解的是SlidingMenu,也就是我们平时说的侧滑栏,现在很多应用都有用这种UI效果.SlidingMenu侧滑栏功能实现的 ...
- 开源项目-SlideMenu和actionbarsherlock的配置
SlidingMenu 是github上一个非常优秀的开源库,利用它可以很方便的实现左右侧滑菜单的效果,现在这个基本上应用的标配了,如果一个App没有滑动效果基本上是不可能的,中国人都是本着人无我有, ...
- 配置开源项目 SlidingMenu 的问题
最近想研究一下开源项目 SlidingMenu,单是配置项目就花了好长的时间,断断续续的尝试,终于配置成功了,写下来和大家分享一下经验. Step 1:导入依赖的项目和例子 打开项目 File -&g ...
- 安卓的SlidingMenu配置
最近用到了界面的优化,使用SlidingMenu开源库比较方便,为了方便学习,我整理了一下配置过程. 1.准备资料. 首先下载这两个ActionBarSherlock和SlidingMenu,如图:
- android侧滑效果,SlidingMenu配置
最近开始做点东西,需要用到android activity侧滑的效果.感觉配置起来还是有点小麻烦,总结一下以便回顾. 需要的东西: 1.SlidingMenu项目:点击打开链接 2.ActionBar ...
- 配置android sdk 环境
1:下载adnroid sdk安装包 官方下载地址无法打开,没有vpn,使用下面这个地址下载,地址:http://www.android-studio.org/
- Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记
以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...
- react-router 组件式配置与对象式配置小区别
1. react-router 对象式配置 和 组件式配置 组件式配置(Redirect) ----对应---- 对象式配置(onEnter钩子) IndexRedirect -----对应-- ...
随机推荐
- JAVA里的String、Timestamp、Date相互转换
Timestamp转化为String: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义 ...
- COM组件简介
面向对象的思想难以适应这种分布式软件模型,于是组件化程序设计思想得到了迅速的发展. 按照组件化的程序设计的思想,复杂的应用程序被设计成一些小的,功能单一的组件模块,这些组件模块可以运行在同一台机器上, ...
- sql 练习(3)
1.打印九九乘法表 ) ,exp)) A, ,exp))B, ,exp))C, ,exp))D, ,exp))E, ,exp))F, ,exp))G, ,exp))H, ,exp))I from ( ...
- Eclipse+EGit的配置注意点, 以及解决Github多个本地仓库之间的冲突
问题描述 不同本地仓库(e.g. Repo1, Repo2)之间同时修改一个文件时, 出现文件无法merge的情况. 具体表现为, 冲突(红色双向实心箭头)一直存在, 点pull没反应, 点push报 ...
- Fedora安装theano
Fedora下安装theano Fedora下安装theano Theano的安装依赖很多包,有必须的,有可选的.此外,python版本必须大于2.6,请在shell直接键入python,如果小于2. ...
- JavaScript 的 Promise
先看这个 http://www.html5rocks.com/zh/tutorials/es6/promises/#toc-api [JavaScript Promise 浏览器支持的Promise ...
- Javascript 思维导图
学习的道路就是要不断的总结归纳,好记性不如烂笔头,so,下面将po出8张javascript相关的思维导图. 思维导图小tips:思维导图又叫心智图,是表达发射性思维的有效的图形思维工具 ,它简单却又 ...
- 动态调用python类和函数
类 class test1(object): def __init__(self): print "i am test1" class test2(object): def __i ...
- php抽象类和接口
接口 使用接口,你可以指定某个类必须实现那些方法,但是不需要定义这些方法的具体内容,我们可以通过interface来定义一个接口,就像定义标准类一样,但其中定义所有的方法都是空的,接口中定义的所有的方 ...
- Java中byte转int的方法
byte转化为int有两种情况: 1)要保持数值不变 应用场景:数值计算.等等. 方法:能够直接採用强制类型转换:int i = (int) aByte, 比如:若aByte=0xff(即数值为-1) ...