&&&&&& 前面一个系列中讲的是fragment的内容,android 3.0中除fragment外,action bar同样也是一个很重要的知识点。我们经常使用action bar来替代传统的标题栏。如果是android平板设备的话,屏幕越大,通过action bar设计的标题可以展示的内容越丰富,操作更加便捷。

  action bar主要功能包含:

  1. 显示选项菜单。
  2. 提供标签页的切换方式的导航功能,可以切换多个fragment。
  3. 提供下拉的导航条目。
  4. 提供交互式活动视图代替选项条目。
  5. 使用程序的图标作为返回home主屏或向上的导航操作。

&&&&&& 提示:在你的程序中应用actionbar需要注意几点,sdk和最终运行的固件必须是android 3.0即honeycomb,在androidmanifest.xml文件中的uses-sdk元素中加入android:minsdkversion 或android:targetsdkversion,类似:

xml/html代码
  1. <&manifest&xmlns:android="http://schemas.android.com/apk/res/android"&&
  2. package="eoe.android.cwj"&&
  3. android:versioncode="1"&&
  4. android:versionname="1.0">&&
  5. <&uses-sdk&android:minsdkversion="honeycomb"&/>&&
  6. <&application&...&>&&
  7. <&/application>&&
  8. <&/manifest>&&

&&&&&& 如果需要隐藏action bar可以在你的activity的属性中设置主题风格为notitlebar在你的manifest文件中,下面的代码在3.0以前是隐藏标题,而在3.0以后就是隐藏actionbar了,代码为:

xml/html代码
  1. <&activity&android:theme="@android:style/theme.notitlebar">&&

&&&&&& 一、添加活动条目 action items

  对于活动条目大家可以在下图看到android 3.0的标题右部分可以变成工具栏,下面的save和delete就是两个action items活动条目。

  下面是一个menulayout布局文件代码:

xml/html代码
  1. <?xml&version="1.0"&encoding="utf-8"?>&&
  2. <menu&xmlns:android="http://schemas.android.com/apk/res/android">&&
  3. <&item&android:id="@+id/menu_add"&&
  4. android:icon="@drawable/ic_menu_save"&&
  5. android:title="@string/menu_save"&&
  6. android:showasaction="ifroom|withtext"&/>&&
  7. </menu>&&

&&&&&& 而其他代码类似activity中的menu,比如:

java代码
  1. @override&&
  2. public&boolean&onoptionsitemselected(menuitem&item)&{ &&
  3. switch&(item.getitemid())&{ &&
  4. case&android.r.id.home: &&
  5. //&当action&bar的图标被单击时执行下面的intent &&
  6. intent&intent&=&new&intent(this,&android123.class); &&
  7. startactivity(intent); &&
  8. break; &&
  9. } &&
  10. return&super.onoptionsitemselected(item); &&
  11. }&&

&&&&&& 对于actionbar的创建,可以在你的activity中重写onstart方法:

java代码
  1. @override&&
  2. protected&void&onstart()&{ &&
  3. super.onstart(); &&
  4. actionbar&actionbar&=&this.getactionbar(); &&
  5. actionbar.setdisplayoptions(actionbar.display_home_as_up,&actionbar.display_home_as_up); &&
  6. }&&

&&&&&& 调用getactionbar方式在你的activity的oncreate中时需要注意必须在调用了setcontentview之后。

  二、添加活动视图 action view

&&&&&& 对于actionview,我们可以在menu的布局文件使用中来自定义searchview布局,如下:

xml/html代码
  1. <item&android:id="@+id/menu_search"&&
  2. android:title="search"&&
  3. android:icon="@drawable/ic_menu_search"&&
  4. android:showasaction="ifroom"&&
  5. android:actionlayout="@layout/searchview"&/>&&

&&&&&& 也可以直接指定android系统中的searchview控件,那么这时menu_search的代码要这样写:

xml/html代码
  1. <item&android:id="@+id/menu_search"&&
  2. android:title="search"&&
  3. android:icon="@drawable/ic_menu_search"&&
  4. android:showasaction="ifroom"&&
  5. android:actionviewclass="android.widget.searchview"&/>&&

&&&&&& 大家注意上面的两种方法中一个属性是actionlayout制定一个layout xml布局文件,一个是actionviewclass指定一个类,最终调用可以在activity中响应oncreateoptionsmenu方法映射这个menu布局即可。

java代码
  1. @override&&
  2. public&boolean&oncreateoptionsmenu(menu&menu)&{ &&
  3. getmenuinflater().inflate(r.menu.options,&menu); &&
  4. searchview&searchview&=&(searchview)&menu.finditem(r.id.menu_search).getactionview(); &&
  5. return&super.oncreateoptionsmenu(menu); &&
  6. }&&

&

本文发布:android开发网
本文地址:http://www.jizhuomi.com/android/course/393.html
2013-2-23 20:44:13
发布:鸡啄米 分类:android开发教程 浏览: 评论:0