Action Bar代替了传统的位于设备屏幕的标题栏,主要用来显示应用程序的图标和活动的名称以及添加定制动作项等功能。

1. 显示和隐藏Action Bar

显示和隐藏Action Bar 一般有两种方式,一种是配置xml文件方式,一种是编程方式。

(1)xml配置方式,就是在AndroidManifest.xml中添加如下代码:

android:theme="@android:style/Theme.Holo.NoActionBar"

(2)编程方式实现如下:

        ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);//设置应用程序图标可被单击
actionBar.hide();

2.动作项的添加、定制以及应用程序图标的定制

除了显示应用程序的图标和活动名称外,还可以添加动作项。动作项是应用程序中经常执行的一些操作的快捷方式。动作项添加和定制的实现方法如下:

package com.example.myactionbar;

import android.net.rtp.RtpStream;
import android.os.Bundle;
import android.R.anim;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast; public class MyActionBarActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);//设置应用程序图标可被单击
// actionBar.hide();
// actionBar.show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
super.onCreateOptionsMenu(menu);
createMenu(menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
return MenuChoice(item);
}
private void createMenu(Menu menu){
MenuItem menuItem1 = menu.add(0, 0, 0, "菜单1");
menuItem1.setIcon(R.drawable.setting);
menuItem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM| MenuItem.SHOW_AS_ACTION_WITH_TEXT); MenuItem menuItem2 = menu.add(0, 1, 1, "菜单2");
menuItem1.setIcon(R.drawable.ic_launcher);
menuItem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); MenuItem menuItem3 = menu.add(0, 2, 2, "菜单3");
menuItem1.setIcon(R.drawable.setting);
menuItem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); MenuItem menuItem4 = menu.add(0, 3, 3, "菜单4");
menuItem1.setIcon(R.drawable.ic_launcher);
menuItem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); MenuItem menuItem5 = menu.add(0, 4, 4, "菜单5");
menuItem1.setIcon(R.drawable.ic_launcher);
menuItem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
private boolean MenuChoice(MenuItem item){
switch (item.getItemId()) {
case android.R.id.home:
Toast.makeText(this, "您点击了应用程序的Icon", Toast.LENGTH_LONG).show(); Intent intent = new Intent(this,MyActionBarActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent); return true;
case 0:
Toast.makeText(this, "您点击了菜单1", Toast.LENGTH_LONG).show();
return true; case 1:
Toast.makeText(this, "您点击了菜单2", Toast.LENGTH_LONG).show();
return true;
case 2:
Toast.makeText(this, "您点击了菜单3", Toast.LENGTH_LONG).show();
return true;
case 3:
Toast.makeText(this, "您点击了菜单4", Toast.LENGTH_LONG).show();
return true;
case 4:
Toast.makeText(this, "您点击了菜单5", Toast.LENGTH_LONG).show();
return true;
}
return false;
} }

Android开发之Action Bar的更多相关文章

  1. android开发之Animations的使用(二)

    android开发之Animations的使用(二) 本博文主要讲述的是android开发中的animation动画效果的使用,和上一篇博文不同的是,此次四种动画效果,主要使用的是xml文件实现的,提 ...

  2. android开发之Animation(五)

    android开发之Animation的使用(五) 本博文主要讲述的是Animation中的AnimationLisenter的用法,以及此类的一些生命周期函数的调用,代码实比例如以下: MainAc ...

  3. Android开发之InstanceState详解

    Android开发之InstanceState详解   本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceS ...

  4. Android开发之旅: Intents和Intent Filters(理论部分)

    引言 大部分移动设备平台上的应用程序都运行在他们自己的沙盒中.他们彼此之间互相隔离,并且严格限制应用程序与硬件和原始组件之间的交互. 我们知道交流是多么的重要,作为一个孤岛没有交流的东西,一定毫无意义 ...

  5. Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面

    现在开发中的功能需要直接跳转到拨号.联系人.短信界面等等,查找了很多资料,自己整理了一下. 1.跳转到拨号界面,代码如下: 1)直接拨打 Intent intentPhone = new Intent ...

  6. Android开发之TextView高级应用

    Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大家分享一下TextView的一些使用技巧. A ...

  7. Android开发之InstanceState详解(转)---利用其保存Activity状态

    Android开发之InstanceState详解   本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceS ...

  8. Android开发之旅5:应用程序基础及组件

    引言 上篇Android开发之旅:应用程序基础及组件介绍了应用程序的基础知识及Android的四个组件,本篇将介绍如何激活组关闭组件等.本文的主题如下: 1.激活组件:意图(Intents) 1.1. ...

  9. Android开发之旅2:HelloWorld项目的目录结构

    引言 前面Android开发之旅:环境搭建及HelloWorld,我们介绍了如何搭建Android开发环境及简单地建立一个HelloWorld项目,本篇将通过HelloWorld项目来介绍Androi ...

随机推荐

  1. Linux用户环境变量

    Linux用户环境变量 环境变量就是系统或软件设置的一些参数,用户环境变量就是用户登录系统后,都有自已专用的运行环境.在Windows系统中用户环境变量保存在用户家目录,Linux也是同样的.本文主要 ...

  2. Android用户界面 UI组件--AdapterView及其子类(一) ListView及各种Adapter详解

    ListView就是列表组件,一般通过继承ListActivity使用系统提供的ListView. 所有的AdapterView组件都需要有一个对应的Adapter作为适配器来显示列表中元素的布局方式 ...

  3. JavaScript 判断对象是否为空

    /** **判断是否null *@param data */ function isNull(data) {     return (data == "" || data == u ...

  4. mybatis源码分析(2)——事务概述

    这篇文章主要对mybatis中的事务做一简单的分析,帮助读者理清一些概念. 先来看看在JAVA事务的相关技术,在JAVA中有两类事务,JDBC事务和JTA事务,如果是JDBC类型的事务,则是由Conn ...

  5. WordPress RokMicroNews插件‘thumb.php’ 多个安全漏洞

    漏洞名称: WordPress RokMicroNews插件‘thumb.php’ 多个安全漏洞 CNNVD编号: CNNVD-201309-384 发布时间: 2013-09-24 更新时间: 20 ...

  6. C++ const&的一个特性

    最近在搜索类似scope exit的实现时,除了发现已经有人向标准委员会提出意见,还得到一些意外的C++特性,这个特性一直都存在,而且很有趣 http://herbsutter.com/2008/01 ...

  7. Json遇到引号需要转义的问题

    首先看一个简单的Json格式的数据: {data:{id:1,text:"this is text",src:"abc/abc/abc.png"},succes ...

  8. selenium-webdriver的等待方法

    Wait commands in WebDriver Listing out the different WebDriver Wait statements that can be useful fo ...

  9. python三元运算符

    在c.php里面,都有三元运算符,如:   a = b?c:d 意思是 b 的运算结果如果是True,那么整个表达式a就等于c,反之如果b的运算结果是False,那么a就等于d. 这样写起来简洁又高效 ...

  10. Unity3d shader之SWAP Force Depth-of-Field Shader

    由于博主常年逃课,所以期末考试期间只能突击,但偶尔还能拿个奖学金啥的,哈哈,所以近一个月没有做游戏,也没有发博客= =... 这个景深的方法很简单 我们需要求的是CoC(circle of confu ...