Android活动条(actionbar)使用具体解释(一)
假设设置应用主题或Activity的主题属性Android:name="@android:style/Theme.Holo.NoActionBar"。则关闭ActionBar活动条功能。

ActionBar还能够依据应用程序当前的功能来提供与其相关的Actionbutton,这些button都会以图标或文字的形式直接显示在ActionBar上。
当然。假设button过多,ActionBar上显示不完。多出的一些button能够隐藏在overflow里面(最右边的三个点就是overflowbutton),点击一下overflowbutton就能够看到全部的Actionbutton了。 当Activity启动的时候。系统会调用Activity的onCreateOptionsMenu()方法来取出全部的Actionbutton,我们仅仅须要在这种方法中去载入一个menu资源(menu/*.xml)。并把全部的Actionbutton都定义在资源文件中面就能够了。
- <?xml version="1.0" encoding="utf-8"?>
- <menu xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- 第一个菜单项:字体大小菜单,并设置为ActionBar(假如手机无Menu键)-->
- <item android:title="@string/font_size"
- android:icon="@drawable/font"
- android:showAsAction="always|withText">
- <menu>
- <!-- 定义一组单选菜单项 ,然后定义一组菜单选项-->
- <group android:checkableBehavior="single">
- <item
- android:id="@+id/font_10"
- android:title="@string/font_10"/>
- <item
- android:id="@+id/font_12"
- android:title="@string/font_12"/>
- <item
- android:id="@+id/font_14"
- android:title="@string/font_14"/>
- <item
- android:id="@+id/font_16"
- android:title="@string/font_16"/>
- <item
- android:id="@+id/font_18"
- android:title="@string/font_18"/>
- </group>
- </menu>
- </item>
- <!-- 第二个菜单项:普通菜单-->
- <item
- android:id="@+id/plain_item"
- android:title="@string/palin_item"
- android:showAsAction="always|withText">
- </item>
- <!-- 第三个菜单项:字体颜色-->
- <item
- android:title="@string/font_color"
- android:icon="@drawable/color"
- android:showAsAction="always|withText">
- <!-- 定义一组单选菜单项 ,然后定义一组菜单选项-->
- <menu>
- <group>
- <item
- android:id="@+id/red_font"
- android:title="@string/red_title"/>
- <item
- android:id="@+id/blue_font"
- android:title="@string/blue_title"/>
- <item
- android:id="@+id/green_font"
- android:title="@string/blue_title"/>
- </group>
- </menu>
- </item>
- </menu>
- package com.android.android_actionbar_2;
- import android.app.ActionBar;
- import android.app.Activity;
- import android.content.Intent;
- import android.graphics.Color;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuInflater;
- import android.view.MenuItem;
- import android.widget.TextView;
- import android.widget.Toast;
- public class MainActivity extends Activity {
- ActionBar actionbar;
- private TextView txt;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- /1./获取当前Activity的actionBar
- actionbar=getActionBar();
- }
- //2.将Xml资源加入到menu菜单中
- public boolean onCreateOptionsMenu(Menu menu)
- {
- MenuInflater inflator=new MenuInflater(this);
- inflator.inflate(R.menu.menu, menu);
- return super.onCreateOptionsMenu(menu);
- }
- //3.响应并实现菜单项功能
- public boolean onOptionsItemSelected(MenuItem mi)
- {
- if(mi.isCheckable())
- {
- mi.setChecked(true);
- }
- switch(mi.getItemId())
- {
- //设置字体大小
- case R.id.font_10:
- txt.setTextSize(10*2);
- break;
- case R.id.font_12:
- txt.setTextSize(12*2);
- break;
- case R.id.font_14:
- txt.setTextSize(14*2);
- break;
- //设置字体颜色
- case R.id.blue_font:
- txt.setTextColor(Color.BLUE);
- mi.setChecked(true);
- break;
- case R.id.green_font:
- txt.setTextColor(Color.GREEN);
- mi.setChecked(true);
- break;
- //设置普通菜单响应
- case R.id.plain_item:
- Toast toast=Toast.makeText(MainActivity.this, "您单击了普通菜单", Toast.LENGTH_SHORT);
- toast.show();
- break;
- }
- return true;
- }
- }

package com.example.actionbar;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
/**
* 项目名称/版本:Actionbar/v1.0
* 包 名:com.example.actionbar
* 类描写叙述:启用程序图标导航.点击应用程序图标。返回主界面
* 创建人:jiangdongguo
* 创建时间:2015-6-12 下午8:20:14
* 博客地址:http://blog.csdn.net/u012637501
*/
public class ActionHome extends Activity {
private ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//a.获得ActionBar实例
actionBar = getActionBar();
//b.设置是否显示应用程序图标
actionBar.setDisplayShowHomeEnabled(true);
//c.设置是否将应用程序图标转换变成可点击的button
actionBar.setHomeButtonEnabled(true);
//d.将应用程序图标设置为可点击的button并在图标上加入向左箭头
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
return super.onCreateOptionsMenu(menu);
}
/**
*选项菜单的菜单项被单击后的回调方法
* */
public boolean onOptionsItemSelected(MenuItem item) {
//推断菜单项能否被点击,是则使能菜单项
if(item.isChecked()){
item.setChecked(true);
}
//推断单击的是哪个菜单项,并作出对应的响应
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(ActionHome.this,MainActivity.class);
startActivity(intent);
this.finish();
break;
default:
break;
}
return true;
}
}
效果演示:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjYzNzUwMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
bar中嵌入一个SearchView窗体部件。为了实现一个action view到动作栏中。我们能够使用actionLayout or actionViewClass属性来指定一个布局(xml)资源或者窗体部件widget到Action
Bar.详细操作:
- <?xml version="1.0" encoding="utf-8"?>
- <menu xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- Action Item为widget-->
- <item
- android:id="@+id/search"
- android:title="搜索"
- android:orderInCategory="100"
- android:showAsAction="ifRoom|collapseActionView"
- android:actionViewClass="android.widget.SearchView"/>
- <!-- Action Item为视图资源-->
- <item
- android:id="@+id/clock"
- android:title="模拟时钟"
- android:orderInCategory="100"
- android:showAsAction="ifRoom|collapseActionView"
- android:actionLayout="@layout/clock"/>
- </menu>
xml version="1.0" encoding="utf-8"?>
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.menu, menu); //载入菜单资源
- MenuItem searchItem = menu.findItem(R.id.search);
//获得MenuItem对象 - SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); //获得Action视图对象
- // Configure the search info and add any event listeners //为Action视图对象注冊事件监听器
- ...
- return super.onCreateOptionsMenu(menu);
- }

属性值表示该空间能够被合并成一个Actionbutton。
Android活动条(actionbar)使用具体解释(一)的更多相关文章
- Android学习笔记(35):Android活动条
在Android3.0之后,Google对UI导航设计上进行了一系列的改革,当中有一个很好用的新功能就是引入的ActionBar,用于代替3.0之前的标题栏,并提供更为丰富的导航效果. ActionB ...
- Android活动启动模式
在android中,android活动是以栈的方式进行存储,在栈中的活动不断被重新激活至前台和不断被终止也不断被排序.因此对于栈中的活动管理也是一个比较麻烦的事情. android给我们提供了两类活动 ...
- S5PV210之Sate210-F DIY硬件,移植uboot,kernel,android 活动现在已经进入实施阶段吗,欢迎广大网友参与 !
大家一起来diy 超低价四核的exynos4412或者Cortex A8S5pv210开源开发板 商业版Sate210已经完成了好久了.Sate4412 也已经出来.但是这两个接口非常全,主要是针对企 ...
- 多种的android进度条的特效源码
多种的android进度条的特效源码,这个源码是在源码天堂那个网站上转载过来的,我已经修改一部分了,感觉很实用的,大家可以学习一下吧,我就不上传源码了,大家可以直接到那个网站上下载吧. 源码天堂下载地 ...
- android进度条
android进度条 1.达到的效果 2.布局代码 先写一个my_browser.xml文件 存放WebView <?xml version="1.0" encoding=& ...
- Android活动和碎片的生命周期及addToBackStack()方法
开始学了Android活动的生命周期后又到了碎片的生命周期,就开始有点乱了.又看了一些总结的文章有一个挺详细的:https://blog.csdn.net/lecepin/article/detail ...
- Android 一条竖线或横线、画边框
Android 一条竖线或横线.画边框 博客分类: android androidshape 1.画线 [img] http://pic002.cnblogs.com/images/2010/122 ...
- Android Touch事件传递机制具体解释 下
尊重原创:http://blog.csdn.net/yuanzeyao/article/details/38025165 资源下载:http://download.csdn.net/detail/yu ...
- Android界面编程--使用活动条(ActionBar)--实现Tab导航
使用ActionBar结合fragment实现导航 1,调用ActionBar的setNavigationModel(ActionBar.NAVIGATION_MODE_TABS)设置使用tabs导航 ...
随机推荐
- PHP分页类(较完美)
<?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $lis ...
- poj Pseudoprime numbers 3641
Pseudoprime numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10903 Accepted: 4 ...
- QQ客服代码,支持临时会话
<a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=QQ号&site=qq&m ...
- LeetCode OJ--Permutations *
https://oj.leetcode.com/problems/permutations/ 写出一列数的全排列 #include <iostream> #include <vect ...
- php解析json字符串变量总是空白null
通过接口获取的json字符串使用json_decode始终无法正确解析,返回空白. 直接把结果字符串复制出来手动创建一个变量却正常,在前端js也能解析,搞了半天不得其解,最后发现是接口输出的结果包含有 ...
- 【WEB基础】HTML & CSS 基础入门(7)表格
表格的基本结构 表格是网页上最常见的元素,它除了可以用来展示数据,还常常被用来排版.虽然现在提倡使用DIV+CSS完成页面布局,但表格框架简单明了,对于繁杂的数据,一个简洁的表格能让其展现的极有条理. ...
- mysql 设置默认id自增开始下标
alter table 表名 AUTO_INCREMENT 此处写你想让id从几开始增长的数字:
- Maven自动部署war到Tomcat8
原文:http://www.cnblogs.com/yucongblog/p/5392932.html 我使用的环境是:Eclipse Java EE IDE for Web Developers(V ...
- UnicodeEncodeError: 'ascii' codec can't encode character u'\u5728' in position 1
s = "图片picture"print chardet.detect(s) for c in s.decode('utf-8'): print c UnicodeEncodeEr ...
- 基于cucumber接口测试框架的扩展——测试框架总结之cucumber
主要功能: 1.通过fiddler抓取请求,导出xml文件. 2.解析xml文件至excel,或者手工填写excel数据. 3.根据excel中的URL中地址生成的接口集合和feature内容模板生成 ...