Android开发之Action Bar
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的更多相关文章
- android开发之Animations的使用(二)
android开发之Animations的使用(二) 本博文主要讲述的是android开发中的animation动画效果的使用,和上一篇博文不同的是,此次四种动画效果,主要使用的是xml文件实现的,提 ...
- android开发之Animation(五)
android开发之Animation的使用(五) 本博文主要讲述的是Animation中的AnimationLisenter的用法,以及此类的一些生命周期函数的调用,代码实比例如以下: MainAc ...
- Android开发之InstanceState详解
Android开发之InstanceState详解 本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceS ...
- Android开发之旅: Intents和Intent Filters(理论部分)
引言 大部分移动设备平台上的应用程序都运行在他们自己的沙盒中.他们彼此之间互相隔离,并且严格限制应用程序与硬件和原始组件之间的交互. 我们知道交流是多么的重要,作为一个孤岛没有交流的东西,一定毫无意义 ...
- Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
现在开发中的功能需要直接跳转到拨号.联系人.短信界面等等,查找了很多资料,自己整理了一下. 1.跳转到拨号界面,代码如下: 1)直接拨打 Intent intentPhone = new Intent ...
- Android开发之TextView高级应用
Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大家分享一下TextView的一些使用技巧. A ...
- Android开发之InstanceState详解(转)---利用其保存Activity状态
Android开发之InstanceState详解 本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceS ...
- Android开发之旅5:应用程序基础及组件
引言 上篇Android开发之旅:应用程序基础及组件介绍了应用程序的基础知识及Android的四个组件,本篇将介绍如何激活组关闭组件等.本文的主题如下: 1.激活组件:意图(Intents) 1.1. ...
- Android开发之旅2:HelloWorld项目的目录结构
引言 前面Android开发之旅:环境搭建及HelloWorld,我们介绍了如何搭建Android开发环境及简单地建立一个HelloWorld项目,本篇将通过HelloWorld项目来介绍Androi ...
随机推荐
- XSS解决方案系列之四:关于编码
本文准备说明以下几个问题: 1. 关于重复编码的问题 2. 关于编码的多种形式的问题 3. 关于编码的几个常见问题 [说明] 本文所述编码是指encode,可以理解为转义,而不是编程序写代码. 编码或 ...
- VC禁止在任务管理器中结束本进程
转自百度空间:http://hi.baidu.com/175943462/item/657905e13b73b70b8d3ea8bb 一提到进程保护特别是在Windows下,没有最安全,只有更安全.下 ...
- jquery 提示插件 cluetip
jquery的 插件cluetip, 地址下载是:plugins.learningjquery.com/cluetip/demo/ 下面简单讲解下用法: 1 首先当然要放JQUERY的基本JS,和这个 ...
- 《深入理解linux内核架构》第二章 进程管理和调度
2.1进程优先级 进程优先级 硬实时进程 软实时进程 抢占式多任务处理 2.2进程生命周期 用户太切换到核心态的办法 系统调用 中断 抢占调度模型优先级普通进程<系统调用<中断 普通进程可 ...
- 关于PowerBuilder 9.0中如何修改项目工程名字
关于PowerBuilder 9.0中如何修改项目工程名字,首先要找到三个文件,xxx.pbl.xxx.pbt.xxx.pbw这三个文件,为何要找这个三号个文件呢? 因为在使用PowerBuilder ...
- bzoj1233
首先这道题有一个很重要的贪心就是 在保证所有干草堆都能参与搭建的前提下,我们尽量使最底层的宽度小,这样搭起来的的干草堆高度一定是最高的 当我们以第i个干草堆为一层,显然最优的情况是找到一个尽可能小的j ...
- mac上做透明图片, png, alpha
现在OS X中自带的[预览]功能十分强大,我们甚至可以通过预览来直接制作一些透明效果的PNG图片,当做图片素材(例如图标)使用.这里要用到的是[预览]中的“即时Alpha”工具. -首先我们要使用预览 ...
- zoj 1221 Risk Flory
博客开了快半年了- -学习编程也快1年半了,觉得空空的不太好看,刚好最近开始练习ACM了,就来做一个简单的ACM学习笔记吧,纪念的第一题zol 1221 Risk 风险游戏(个人觉得是这样翻- -翻译 ...
- What is happening in Crockford's object creation technique?
What is happening in Crockford's object creation technique? http://stackoverflow.com/questions/27660 ...
- JavaScript高级程序设计43.pdf
事件类型 Web浏览器中有很多事件类型,“DOM3级事件”规定了以下几类事件 UI事件(用户界面),当用户与页面上的元素交互时触发: 焦点事件,当元素获得或失去焦点时触发 鼠标事件,当用户通过鼠标在页 ...