在AS工程中使用ActionBar

简单实用:

1、功能清单文件中指定主题标签属性Theme.Holo或其子类

<application android :theme="@android:style/Theme.Holo.Light" >

2、可以自己指定显示的图标,默认是应用的图标

 <activity
android:name=".UI.MainActivity"
android:logo="@drawable/icon" />

3、在Activity中设置属性

 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); android.app.ActionBar actionBar= getActionBar();
actionBar.show();//设置显示
//actionBar.hide();//设置隐藏
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);//以上两句是设置可以让actionBar的图标可以响应点击事件
actionBar.setDisplayHomeAsUpEnabled(true);//这一行用于返回效果
}

  也可以设置Activity标签属性来设置隐藏

 <activity
android:name=".UI.WelComeActivity"
android:theme="@android:style/Theme.NoTitleBar">

4、在res资源目录下创建一个menu文件夹,在menu文件夹创建一个actionbar_menu.xml

  android:showAsAction :标签属性,根据需要自行设置

  android:title :一般都设置,根据需要,但并不一定会显示,根据showAsAction标签影响

 <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_seek"
android:showAsAction="always"
android:actionViewClass="android.widget.SearchView"
android:title="搜索" />
<item
android:id="@+id/menu_history"
android:showAsAction="never"
android:title="查看历史" />
<item
android:id="@+id/menu_down"
android:showAsAction="never"
android:title="查看下载" />
</menu>
fRoom 会显示在Item中,但是如果已经有4个或者4个以上的Item时会隐藏在溢出列表中。当然个
数并不仅仅局限于4个,依据屏幕的宽窄而定
never 永远不会显示。只会在溢出列表中显示,而且只显示标题,所以在定义item的时候,最好
把标题都带上。
always 无论是否溢出,总会显示。
withText withText值示意Action bar要显示文本标题。Action bar会尽可能的显示这个
标题,但是,如果图标有效并且受到Action bar空间的限制,文本标题有可
能显示不全。
   collapseActionView   声明了这个操作视窗应该被折叠到一个按钮中,当用户选择这个按钮时,这个操作视窗展开。否则,
这个操作视窗在默认的情况下是可见的,并且即便在用于不适用的时候,也要占据操作栏的有效空间。
一般要配合ifRoom一起使用才会有效果。

5、重写回调方法,就可以显示了

 @Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.actionbar_menu, menu);
return super.onCreateOptionsMenu(menu);
}

点击显示效果

6、重写点击回调方法,根据需要添加代码

  android.R.id.home默认指定的是左上角的图标点击响应

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Toast.makeText (this, "你点击了“home”按键!" , Toast.LENGTH_SHORT).show() ;
return true;
case R.id. menu_seek:
Toast.makeText (this, "你点击了“搜索”按键!" , Toast.LENGTH_SHORT).show() ;
return true;
case R.id. menu_down:
Toast.makeText (this, "你点击了“查看下载”按键!" , Toast.LENGTH_SHORT).show() ;
return true;
case R.id. menu_history:
Toast.makeText (this, "你点击了“查看历史”按键!" , Toast.LENGTH_SHORT).show() ;
return true;
default:
return super .onOptionsItemSelected(item);
}
}

  一般左上角的图标点击都是回退到主界面,在图标的点击响应添加代码

 case android.R.id.home:
//finish();这个只是简单的销毁了当前的界面
Intent upIntent = NavUtils.getParentActivityIntent(this);//获取到跳转至父Activity的Intent
//如果父Activity和当前Activity是在同一个Task中的,则直接调用navigateUpTo()方法进行跳转
if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
android.support.v4.app.TaskStackBuilder.create(this)
.addNextIntentWithParentStack(upIntent)
.startActivities();
} else {//如果不是在同一个Task中的,则需要借助TaskStackBuilder来创建一个新的Task
upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
NavUtils.navigateUpTo(this, upIntent);
}
Toast.makeText(this, "你点击了“home”按键!", Toast.LENGTH_SHORT).show();
return true;

  

【ActionBar的使用】的更多相关文章

  1. Android中通过ActionBar为标题栏添加搜索以及分享视窗

    在Android3.0之后,Google对UI导航设计上进行了一系列的改革,其中有一个非常好用的新功能就是引入的ActionBar,他用于取代3.0之前的标题栏,并提供更为丰富的导航效果.Action ...

  2. Android 添加ActionBar Buttons

    一.在res/menu文件夹下创建Xml文件 跟标签为menu,设置item <?xml version="1.0" encoding="utf-8"?& ...

  3. mono for android 自定义titleBar Actionbar 顶部导航栏 修改 样式 学习

    以前的我是没有做笔记的习惯的,学习了后觉得自己能记住,但是最近发现很多学的东西都忘记了,所有现在一有新的知识,就记下来吧. 最近又做一个mono for android 的项目 这次调整比较大,上次做 ...

  4. Xamarin.Android之ActionBar与菜单

    一.选项卡 如今很多应用都会使用碎片以便在同一个活动中能够显示多个不同的视图.在Android 3.0 以上的版本中,我们已经可以使用ActionBar提供的Tab来实现这种效果,而不需要我们自己去实 ...

  5. 自定义ActionBar标题与菜单中的文字样式

    自定义标题文字样式 标题样式是ActionBar样式的一部分,所以要先定义ActionBar的样式 <style name="AppTheme" parent="A ...

  6. ActionBar设置自定义setCustomView()留有空白的问题

    先来看问题,当我使用ActionBar的时候,设置setCustomView时,会留有空白的处理 网上很多朋友说可以修改V7包到19,结果处理的效果也是不理想的. 下面贴出我觉得靠谱的处理代码 pub ...

  7. Android ActionBar 初探

    1.指南,例子,个人感觉 首先上官网指南链接http://developer.android.com/guide/topics/ui/actionbar.html 参考了官网上的例子http://de ...

  8. Menu与ActionBar的爱恨情仇

    最近在开发一款音乐播放器,在开发过程中遇到了一点小麻烦,通过android API搞清楚了Menu与ActionBar的爱恨情仇,写了个小Demo祭奠一下那些年我们陷进去的坑,有不对的地方请大神们批评 ...

  9. ANDROID中去掉ACTIONBAR或TABWIDGET的分隔线

    在android中,有时需要对ActionBar或者TabWidget的分隔线进行定制,如取消,相关的属性设置为android:divider 以TabWidget为例,取消对应的函数: tabWid ...

  10. 关于ActionBar

    添加ActionBar: Android 3.0(API 11)(不含API11)以下的版本中,如果需要活动有ActionBar,需要让活动继承ActionBarActivity类,并且在Manife ...

随机推荐

  1. RHEL安装时加载第三方raid驱动

    IBM x3650 M3服务器做完RAID之后,不能直接的安装Linux系统,会报出没有硬盘的错误 过程如下: 1.到IBM的官方网站下载device drive 下载后的为:ibm_dd_sraid ...

  2. 推荐一些C#相关的网站、资源和书籍(转载)

    原文地址:http://blog.csdn.net/chinacsharper/article/details/17514923 一.网站 1.http://msdn.microsoft.com/zh ...

  3. javascript第三课underfind和类型获取

    1.underfind一般发生于变量定义之后未赋值,因此变量的值就为underfind 2.var obj=new object(); 此时使用obj点,可以获取到obj对象的一些方法,使用alert ...

  4. new到底做了什么?

    下面是一个实例化自定义的对象,我们将要对他进行分析 //定义构造函数 function A(){ this.b = 1 //在这个对象里增加一个属性 //不可以拥有返回对象的return语句 } va ...

  5. Android源码学习(一) 数据集观察者

    查看Android源码发现这个,决定记下下来. 1.在android.database这个包下面,存在这样一个抽象类DataSetObserver,里面包括onChanged()和onInvalida ...

  6. SSRS(rdl报表)分页显示表头和冻结表头

    <TablixRowHierarchy>          <TablixMembers>            <TablixMember>            ...

  7. Programming C#.Classes and Objects.传递参数

    ref 关键字通过引用(而非值)传递参数. 通过引用传递的效果是,对所调用方法中的参数进行的任何更改都反映在调用方法中. 说明: 不要混淆通过引用传递的概念与引用类型的概念. 这两种概念是不同的. 无 ...

  8. C语言处理CSV文件的方法(一)

    什么是CSV文件 CSV是 Comma-separated values (逗号分隔值)的首字母缩写,它通常是以逗号且不仅限于逗号分隔各个值,我们都叫他CSV. 看下面的例子: China, Shan ...

  9. 在linux中限制用户ftp访问权限

    1.环境:redhat linux企业版4.ftp为vsftp.被限制用户名为aaa.被限制路径为/bbb.2.建用户:在root用户下,相继进行如下操作       adduser aaa      ...

  10. oracle 取头十条数据

    select * from(select * from table order by age)where rownum < 11