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 ...
随机推荐
- IAR中 C语言位定义
__IO_REG8_BIT( SYS, 0xFFFFF802, __READ_WRITE ) #define __IO_REG8_BIT(NAME, ADDRESS, A ...
- 系统的了解DJANGO中数据MODULES的相关性引用
数据库结构如下: from django.db import models class Blog(models.Model): name = models.CharField(max_length=1 ...
- 【网络流24题】 No.15 汽车加油行驶问题 (分层图最短路i)
[题意] 问题描述:给定一个 N*N 的方形网格,设其左上角为起点◎, 坐标为( 1, 1), X 轴向右为正, Y轴向下为正, 每个方格边长为 1, 如图所示. 一辆汽车从起点◎出发驶向右下角终点▲ ...
- 配置Tomcat JNDI数据源
原文地址:http://my.oschina.net/xiaomaoandhong/blog/74584 先记录在此,按照博文未配置成功
- OA学习笔记-003-Hibernate3.6配置
一.jar包:核心包, 必须包, jpa, c3p0, jdbc antlr-2.7.6.jarc3p0-0.9.1.jarcommons-collections-3.1.jardom4j-1.6.1 ...
- Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
本文大部分参考自 http://blog.csdn.net/mayingcai1987/article/details/6200909 ,对原文中的讲解FLAG_NEW_TASK地方加了一些自己的观点 ...
- javascript时间、随机数
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- java线程(2)-线程间通信
方法一 通过访问共享变量的方式(注:需要处理同步问题) 方法二 通过管道流 其中方法一有两种实现方法,即 方法一a)通过内部类实现线程的共享变量 public class Innersharethr ...
- 论SOA架构的几种主要开发方式【转】
面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署.组合和使用.服务层是SOA的基础,可以直接被应用调用,从而有效控制系 ...
- 使用socket.io打造公共聊天室
最近的计算机网络课上老师开始讲socket,tcp相关的知识,当时脑袋里就蹦出一个想法,那就是打造一个聊天室.实现方式也挺多的,常见的可以用C++或者Java进行socket编程来构建这么一个聊天室. ...