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 ...
随机推荐
- Codeforces Round #198 (Div. 2) —— B
B题是一个计算几何的题,虽然以前看过计算几何的ppt,但一直都没有写过: 昨晚比赛的时候本来想写的,但是怕不熟练浪费时间,太可惜了! 其实没必要选出一个最大的矩形: 以矩形的一条对角线为轴,向上或者向 ...
- javascript 字符串转数字
//把str转换为数字的方式,想起很久以前的一个面试题,说字符转数字的方式有哪些,现在想了想 var str1='4.88',str2='4.8xx'; console.log(parseInt(st ...
- ArrayList与LinkedList实现比较
1.ArrayList实现是基于数组来实现的,这可由ArrayList的源码看出: public class ArrayList<E> extends AbstractList<E& ...
- 【BZOJ 3122】 [Sdoi2013]随机数生成器 (BSGS)
3122: [Sdoi2013]随机数生成器 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1442 Solved: 552 Description ...
- POJ 2075 Tangled in Cables 最小生成树
简单的最小生成树,不过中间却弄了很久,究其原因,主要是第一次做生成树,很多细节不够熟练,find()函数的循环for判断条件是 pre[i]>=0,也就是遇到pre[i]==-1时停止,i就是并 ...
- *[hackerrank]Tree Covering
https://www.hackerrank.com/contests/illuminati/challenges/tree-covering 这道题先是在上次交流讨论了一下,然后两位百度的朋友先写完 ...
- Xamarin IOS – hello word
原文:Xamarin IOS – hello word 环境 硬件:Macbook pro Retina 13 系统:10.11.3 EI Capitan Xcode:7.0 Ps:配置刚刚够用. 安 ...
- Android开源项目发现---ImageView 篇(持续更新)
1. PhotoView 支持双击或双指缩放的ImageView 在ViewPager等Scrolling view中正常使用,相比上面的AndroidTouchGallery,不仅支持ViewPag ...
- springboot + devtools(热部署)
技术介绍 devtools:是boot的一个热部署工具,当我们修改了classpath下的文件(包括类文件.属性文件.页面等)时,会重新启动应用(由于其采用的双类加载器机制,这个启动会非常快,如果发现 ...
- 17.1.2 Replication Formats
17.1.2 Replication Formats 复制格式 17.1.2.1 Advantages and Disadvantages of Statement-Based and Row-Bas ...