原文网址:http://irtutsk.iteye.com/blog/2117707

ActionBar的组成:

[1]AppIcon:标题区,显示应用程序图标和标题,也可以自定义。

[2]ViewControl:导航区,可以设置Tab选项卡导航,Spinner下拉导航。

[3]ActionButtons:菜单区,添加菜单按钮。

[4]ActionOverflow:溢出区,显示不下的菜单按钮自动添加到这里,有Menu按键的手机不显示,只能通过Menu按键呼叫。

ActionBar的使用(兼容2.x):

使用API>18,导入Support V7包。
  1. import android.support.v7.app.ActionBar;
  2. import android.support.v7.app.ActionBarActivity;

使当前Activity 继承 ActionBarActivity。

  1. public class MainActivity extends ActionBarActivity

获取当前ActionBar。

  1. ActionBar actionBar = getSupportActionBar();

配置ActionBar。

  1. //显示ActionBar
  2. actionBar.show();
  3. //隐藏ActionBar
  4. actionBar.hide();
  5. //显示图标
  6. actionBar.setDisplayShowHomeEnabled(true);
  7. //显示标题
  8. actionBar.setDisplayShowTitleEnabled(true);
  9. //设置图标
  10. actionBar.setIcon(R.drawable.ic_launcher);
  11. //设置标题
  12. actionBar.setTitle(R.string.action_bar_Title);
  13. //允许使用图标按钮
  14. actionBar.setHomeButtonEnabled(true);
  15. //显示返回主界面按钮
  16. actionBar.setHomeButtonEnabled(true);
  17. //显示返回上一级按钮
  18. actionBar.setDisplayHomeAsUpEnabled(true);
  19. //允许使用自定义视图
  20. actionBar.setDisplayShowCustomEnabled(true);

ActionBar添加菜单:

ActionBar添加菜单的方法与Android2.x添加普通菜单的方法相同。
  1. //添加菜单
  2. @Override
  3. public boolean onCreateOptionsMenu(Menu menu) {
  4. //资源文件方式添加
  5. getMenuInflater().inflate(R.menu.main, menu);
  6. //代码方式添加
  7. MenuItem item = menu.add(groupId, itemId, order, title)
  8. .setIcon(iconRes);
  9. MenuItemCompat.setShowAsAction(item,
  10. MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
  11. return true;
  12. }
  13. //处理菜单项
  14. @Override
  15. public boolean onOptionsItemSelected(MenuItem item) {
  16. // Handle action bar item clicks here. The action bar will
  17. // automatically handle clicks on the Home/Up button, so long
  18. // as you specify a parent activity in AndroidManifest.xml.
  19. int id = item.getItemId();
  20. if (id == R.id.action_settings) {
  21. return true;
  22. }
  23. return super.onOptionsItemSelected(item);
  24. }

处理返回按钮。

在onOptionsItemSelected中处理MenuItem Id为home或homeasup即可。

是android.R.id.home而不是R.id.home,没有android.R.id.homeasup。

  1. if (id == android.R.id.home) {
  2. Intent intent = new Intent(this, MainActivity.class);
  3. startActivity(intent);
  4. return true;
  5. }

菜单的资源文件。

  1. <menu xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:app="http://schemas.android.com/apk/res-auto"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. tools:context="com.example.zhuajimazi.MainActivity" >
  5. <item
  6. android:id="@+id/action_settings"
  7. android:orderInCategory="100"
  8. android:icon="@drawable/settings"
  9. android:title="@string/action_settings"
  10. app:showAsAction="ifRoom"/>
  11. <item
  12. android:id="@+id/action_update"
  13. android:orderInCategory="100"
  14. android:icon="@drawable/update"
  15. android:title="@string/action_update"
  16. app:showAsAction="ifRoom"/>
  17. <item
  18. android:id="@+id/action_about"
  19. android:orderInCategory="100"
  20. android:icon="@drawable/about"
  21. android:title="@string/action_about"
  22. app:showAsAction="ifRoom"/>
  23. <item
  24. android:id="@+id/action_exit"
  25. android:orderInCategory="100"
  26. android:icon="@drawable/exit"
  27. android:title="@string/action_exit"
  28. app:showAsAction="ifRoom"/>
  29. </menu>

【转】ActionBar的基本用法的更多相关文章

  1. Android ActionBar的基本用法

    一  说明android 3.0后出现, 在3.0之前称为Title Bar  显示位置在标题栏上可以显示应用程序的图标和activity的标题创建方式的和系统菜单相似, 区别在于: android: ...

  2. Android官方导航栏ActionBar(二)—— Action View、Action Provider、Navigation Tabs的详细用法

    在上一篇文章(Android之官方导航栏ActionBar)中,我们介绍了ActionBar各组成部分的基本应用.ActionBar除了提供Action Buttons外,还提供了多种导航方式如 Ac ...

  3. 4、android之actionbar用法

    转: 上:http://blog.csdn.net/yuzhiboyi/article/details/32709833 下:http://blog.csdn.net/yuzhiboyi/articl ...

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

    在Android3.0之后,Google对UI导航设计上进行了一系列的改革,其中有一个非常好用的新功能就是引入的ActionBar,他用于取代3.0之前的标题栏,并提供更为丰富的导航效果.Action ...

  5. SlidingMenu 侧滑菜单的用法

    很多APP都有侧滑菜单的功能,部分APP左右都是侧滑菜单~SlidingMenu 这个开源项目可以很好帮助我们实现侧滑功能,将侧滑菜单引入项目的方式很多中,先通过例子介绍各种引入方式,然后给大家展示个 ...

  6. ActionBar详解

    转: 一.ActionBar介绍 在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个非常重要的交互元素,Action Bar取代了传统的tittle bar和 ...

  7. android中的ActionBar和ToolBar

    一.ToolBar 1.概述 Google在2015的IO大会上发布了系列的Material Design风格的控件.其中ToolBar是替代ActionBar的控件.由于ActionBar在各个安卓 ...

  8. ToolBar、ActionBar与Menu的纠葛(以及navigationIcon、setHomeButtonEnabled、setDisplayHomeAsUpEnabled)

    因为贴图的繁琐...所以下面是无图版...完整的在这里: 探究一下toobar和actionbar在使用menu时的吊诡情况 一.背景介绍 toolbar最近比较火,而且是出出来代替actionbar ...

  9. 【Android UI设计与开发】8.顶部标题栏(一)ActionBar 奥义·详解

    一.ActionBar介绍 在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个非常重要的交互元素,Action Bar取代了传统的tittle bar和men ...

随机推荐

  1. iOS UIImage扩展方法(category):放大、旋转、合并UIImage、增加渐变层、添加阴影、调节透明度、保存到相册

    一有用的 UIImage 扩展,支持(等比例)放大和旋转可在许多 App 中使用. UIImage-Extensions.h #import <Foundation/Foundation.h&g ...

  2. 解决Item控件抢占焦点

    http://www.imooc.com/learn/372 在抢占焦点的控件加上 方法一: android:focusable="false" 方法二: 在外界布局上 andro ...

  3. Flashback Version Query、Flashback Transaction Query快速闪回细粒度数据

    Flashback Version Query 闪回版本查询 使用Flashback Version Query  返回在指定时间间隔或SCN间隔内的所有版本,一次commit命令就会创建一个版本. ...

  4. Robotium API -- 判断测试结果的方法assert、is、search

    下面的这些方法都主要用来判断测试结果是否与预期结果相符,一般把is和search方法放在assert里面判断.assert最常用的还是assertThat方法,是Junit的判断,这里就不多说了. 断 ...

  5. centos5.5上apache快速安装H264流媒体支持MP4-H264边下边播

    2013年的某一天,客户反馈北京同事做的广告视频下载速度好慢,几MB的视频在手机上要下载接近一分钟才能开始播放. 我分析后发现两点:1)托管的服务器没支持流媒体:2)广告视频MP4并非流媒体格式. 对 ...

  6. TP框架多表联查

    join方法import("@.ORG.Page");        $Form   =   M('gly');        $where='';        if ($_PO ...

  7. web04--cookie

    1.创建1.jsp <body> <form action="cookie/2.jsp" method="post"> 姓名:<i ...

  8. Jquery+css实现图片无缝滚动轮播

    Today,在XX学院的教学视频中,偶尔看到了Jquery+css实现图片无缝滚动轮播视频教程,虽然以前已写过类似的,但是我感觉他学的比较精简.为了方便以后做项目时直接拷贝,特地写出来,顺便和大家分享 ...

  9. Asp.Net WebApi 启用CORS跨域访问指定多个域名

    1.后台action指定 EnableCors指定可访问的域名多个,使用逗号隔开 //支持客户端凭据提交,指定多个域名,使用逗号隔开 [EnableCors("http://localhos ...

  10. AJAX校验用户名是否存在,焦点离开用户名、点击 【 检 查用户名 】的校验。分别用 XMLHttp 和 JQueryAJAX实现。

     XMLHttp方法: $("#name").blur(function () { var xmlhttp = new ActiveXObject("Microsoft. ...