ActionBarSherlock的使用——(一)配置

来源:互联网 发布:淘宝app怎么打不开 编辑:程序博客网 时间:2024/06/11 06:37

简介:

从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,引用:

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是菜单的布局文件。内容如下:

<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>
运行后,效果如图:(虚拟机版本,API-8 2.2)

这篇先写到这里,希望和大家能给这个文章一些指点。

转载请注明来自: http://blog.csdn.net/icyfox_bupt/article/details/9286387

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 玻璃杯子盖被水吸住打不开怎么办 电饭煲热剩饭没加水怎么办 微波炉碗盖子吸住了怎么办 微波炉转饭盖子吸住了怎么办 玻璃碗放进微波炉打不开怎么办 乐扣微波炉加热后打不开怎么办 美的微波炉盖子打不开怎么办 美的微波炉门都打不开了怎么办 饭煮好了有异味怎么办 一正常吃饭就胖怎么办 高铁盒饭没15的怎么办 上火车前票丢了怎么办 减肥期吃了汉堡怎么办 寿司店鳗鱼有刺怎么办 吃泡面胃难受该怎么办 吃上火的东西脸上长痘痘怎么办 减肥期间吃撑了怎么办 喝了变质的牛奶怎么办 绿豆糕吃多了会怎么办 小孩抓米饭烫了手怎么办 减肥不来月经了怎么办 吃了馊了的米饭怎么办 饭在冰箱里硬了怎么办 剩米饭反潮了怎么办 吃馊米饭中毒后怎么办? 蒸熟的米饭发黄怎么办 孕妇肉类吃的少怎么办 大米饭坏了吃了怎么办 米饭煮糊了锅怎么办 减肥吃了猪肉脯怎么办 吃了硬米饭胃痛怎么办 宝宝吃了硬物怎么办 米饭卡在喉咙里了怎么办 喉咙里卡了米饭怎么办 孕妇吃了坏鹅蛋怎么办 1岁大宝宝长短腿怎么办 行测中的判断推理怎么办 塑料盖子玻璃罐头瓶子打不开怎么办 猪肉烫火锅吃怎么办料 自制腊肠放干了怎么办 孕妇吃了4块腊肉怎么办