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. hdu 4731

    一道找规律的题,但今天的智商捉急,一直都想不到点子上: 比赛之后和别人讨论的时候,在n=2的情况下,前面两个是aa,后面就接着很多个aababb,然后最后再判断下就行了~~~ 以后对于这种题还是不要太 ...

  2. hdu 3062

    2-SAT的入门题: 网上说这个算法最好的入门教材是:伍昱的<由对称性解2-SAT问题>的ppt和赵爽的论文<2-SAT 解法浅析>: 看了一下伍昱的ppt,很好理解! 而这道 ...

  3. 【HDOJ】3277 Marriage Match III

    Dinic不同实现的效率果然不同啊. /* 3277 */ #include <iostream> #include <string> #include <map> ...

  4. React入门2

    React 入门实例教程 最简单开始学习 JSX 的方法就是使用浏览器端的 JSXTransformer.我们强烈建议你不要在生产环境中使用它.你可以通过我们的命令行工具 react-tools 包来 ...

  5. HDU 5948 Thickest Burger 【模拟】 (2016ACM/ICPC亚洲区沈阳站)

    Thickest Burger Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  6. HDU-1390 Binary Numbers

    http://acm.hdu.edu.cn/showproblem.php?pid=1390 Binary Numbers Time Limit: 2000/1000 MS (Java/Others) ...

  7. 执行configure报错configure: error: C++ preprocessor "/lib/cpp" fails sanity check

    解决方案: 出现该情况是由于c++编译器的相关package没有安装,以root用户登陆,在终端上执行: # yum install glibc-headers # yum install gcc-c ...

  8. SCI写作经典替换词,瞬间高大上!(转)

    转自微信:http://mp.weixin.qq.com/s?__biz=MzA4NDk3ODEwNQ==&mid=202006470&idx=2&sn=e8900b94448 ...

  9. 解决ubuntu合盖后无法唤醒

    解决办法: 安装laptop-mode-tools工具包 1. 检查是否安装了grep laptop-mode-tools 工具包 $ dpkg -l | grep laptop-mode-tools ...

  10. Uoj #131. 【NOI2015】品酒大会 后缀数组,并查集

    #131. [NOI2015]品酒大会 统计 描述 提交 自定义测试 一年一度的“幻影阁夏日品酒大会”隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发“首席品酒家”和“首席猎手”两个奖项, ...