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导航 ...
随机推荐
- VirtualBox 與 Vmware 差異
VirtualBox 4.3.36_Ubuntu r105129 與 VMware® Workstation 12 Player 12.5.2 build-4638234, 分別在各自的 Ubunt ...
- PHP使用JpGraph绘制折线图
PHP使用JpGraph绘制折线图 下载jpgraph类库,使用的是src目录下的类文件. require_once './src/jpgraph.php'; require_once './src/ ...
- 洛谷——P2404 自然数的拆分问题
题目背景 任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和. 题目描述 任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和. 输入输出格式 输入格式: 输入:待拆分的自然数n ...
- 教你写Linux设备驱动程序:一个简短的教程
教你写Linux设备驱动程序:一个简短的教程 http://blog.chinaunix.net/uid-20799298-id-99675.html
- POJ 2253 Frogger Floyd
原题链接:http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissi ...
- CF623
AIM Tech Round (Div. 1) <br > 这真是一套极好的题目啊.....虽然我不会做 <br > 代码戳这里 <br > A.Graph and ...
- Java多线程中Lock的使用
Jdk1.5以后,在java.util.concurrent.locks包下,有一组实现线程同步的接口和类,说到线程的同步,可能大家都会想到synchronized关键字, 这是java内置的关键字, ...
- PyTorch学习笔记之Tensors
PyTorch Tensors are just like numpy arrays, but they can run on GPU.No built-in notion of computatio ...
- @RequestParam,@PathVariable,@ResponseBody,@RequestBody,@ModelAttribute学习
1.@RequestParam使用于参数上,用于将请求参数映射到指定参数变量上 例如: @RequestMapping(value="/hello",method=RequestM ...
- 调用tf.softmax_cross_entropy_with_logits函数出错解决
原来这个函数,不能按以前的方式进行调用了,只能使用命名参数的方式来调用.原来是这样的: tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y ...