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导航 ...
随机推荐
- 【前端学习笔记】2015-09-02 附~~~~~ajax简单请求和获得响应结果
首先得创建一个请求XMLHttpRequest对象,var xmlhttp=window.XMLHttpRequest?new XMLHttpRequest() : new ActiveXObjec ...
- 不吹不黑,关于 Java 类加载器的这一点,市面上没有任何一本图书讲到
类加载器第7弹: 实战分析Tomcat的类加载器结构(使用Eclipse MAT验证) 还是Tomcat,关于类加载器的趣味实验 了不得,我可能发现了Jar 包冲突的秘密 重写类加载器,实现简单的热替 ...
- sublime flatLand 主题
今天试了下感觉主题不错 记下来备忘. 1.sublime3 package control install 搜索 flatLand 2 安装完成后. 修改 Preferences 文件,通过 Sub ...
- 转 浅谈C++中指针和引用的区别
浅谈C++中指针和引用的区别 浅谈C++中指针和引用的区别 指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法. 1.指针和引用的定义和性 ...
- Git基础篇【转】
转自:https://i.cnblogs.com/EditPosts.aspx?opt=1 1.设置名字与邮箱 $ Git config –global user.name “YourName” $ ...
- AForge.NET 设置摄像头分辨率
AForge.NET 老版本在预览摄像头时可通过设置DesiredFrameSize 属性,设置摄像头支持的分辨率,新版本提示已过期: 解决办法: 获取VideoCapabilities属性集合,选中 ...
- 标准C程序设计七---37
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- 优先队列priority_queue的使用
优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序. 每次的push和pop操作,队列都会动态的调整,以达到我们预期的方式来存储.例如:我们常用的操作就 ...
- 数据结构自己实现——Linklist
//单???链???表??? #include <iostream> using namespace std; typedef char datatype; typedef struct ...
- Toast问题记录:This Toast was not created with Toast.makeText()
最近使用自己封装的Toast时,遇到一个问题 java.lang.RuntimeException: This Toast was not created with Toast.makeText() ...