ActionBar的使用很普遍,可以充当工具栏使用。本文介绍如何使用ActionBar。

1.ActionBar一般包含有多个工具按钮。所以,需要新建一个xml文件来存放ActionBar中的内容。在程序的res文件夹下新建一个menu文件夹,在menu中新建一个xml命名为optionmenu。

注:要在menu的元素下创建,这样在xml中可以直接生成menu代码。

2.在optionmenu.xml中加入actionbar内容的布局。因为本文的actionbar中的item使用了图片背景,所以在res下新建一个drawable文件夹用来存放背景图片,图片可以在下面这个网站下载http://www.easyicon.net/(个人认为,这个网址还是很方便的)

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/zoomin"
android:icon="@drawable/zoomin"
android:title="放大"
android:showAsAction="always"/>
<item
android:id="@+id/zoomout"
android:icon="@drawable/zoomout"
android:title="缩小"
android:showAsAction="always"/>
<item
android:id="@+id/mapscreen"
android:icon="@drawable/map"
android:title="全图"
android:showAsAction="always"/>
<item
android:id="@+id/clear"
android:icon="@drawable/clear"
android:title="清除"
android:showAsAction="always"/> </menu>

3.布局完成后,就要在activity中设置该actionbar的显示。在onCreate函数中加入代码:

ActionBar actionBar = this.getActionBar();
actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP);

4.这只是定义了ActionBar,下一步需要找到刚开始定义的xml文件。这需要重写onOptionsItemSelected函数。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.optionmenu, menu);
//SearchView searchView = (SearchView) menu.findItem(R.id.actionview).getActionView();
return true;
}

5.到这一步就可以显示了:

6.点击事件

 @Override
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()) {
case android.R.id.home:
Toast.makeText(this, "单击了图标", Toast.LENGTH_SHORT).show();
return true;
case R.id.zoomin:
Toast.makeText(this, "放大", Toast.LENGTH_SHORT).show();
return true;
case R.id.zoomout:
Toast.makeText(this, "缩小", Toast.LENGTH_SHORT).show();
return true;
case R.id.mapscreen:
Toast.makeText(this, "全图", Toast.LENGTH_SHORT).show();
return true;
case R.id.clear:
Toast.makeText(this, "清除", Toast.LENGTH_SHORT).show();
return true; default:
return super.onOptionsItemSelected(item);
}
}

另外,可以更换项目的标题图片:在AndroidManifest.xml中修改<application>标签中的android:icon的值就ok了。

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. CSS text-transform 属性

    text-transform 属性控制文本的大小写. h1 {text-transform:uppercase} h2 {text-transform:capitalize} p {text-tran ...

  2. 关于imagic拼接透明背景图片的问题

    目标: 为了做图片水印,需要水平拼接多个logo和文字... 之前用过imagick,所以继续使用. 第一个版本:实现了图片和文字的拼接,代码如下: package main import ( &qu ...

  3. shell 环境初始化顺序

    登陆shell 的执行顺序 /etc/profile /etc/profile.d/file /etc/bashrc .bashrc .bash_profile 非登录shell 的执行顺序, 例如: ...

  4. Android安全之Https中间人攻击漏洞

    Android安全之Https中间人攻击漏洞 0X01 概述   HTTPS,是一种网络安全传输协议,利用SSL/TLS来对数据包进行加密,以提供对网络服务器的身份认证,保护交换数据的隐私与完整性. ...

  5. runtime 运行机制2

    Mike_zh QQ:82643885 end: blogTitle 博客的标题和副标题 博客园 首页 新随笔 联系 订阅 <a id="MyLinks1_XMLLink" ...

  6. 在vCenter5.5中为用户创建角色,管理虚拟机

    在vSphere的使用中,如有只有vCenter+ESXi节点的两级配置,为了达到多租户管理及权限分配,可以在vCenter5.5中为用户创建角色,管理虚拟机 1.以管理员身份登陆vCenter 2. ...

  7. 由React学习到Yeoman安装以及遇到的问题

    离职闲下来之后想着学一些新知识,本来是想从react入手,结果延伸出去的内容就像一棵树的树枝,不断增加. 学习计划是从这里开始的(6周学习计划,攻克javascript难关 https://zhuan ...

  8. 解决jquery1.9不支持browser对象的问题||TypeError: $.browser is undefined

    在插件的源代码里插入如下代码: (function(jQuery){ if(jQuery.browser) return; jQuery.browser = {}; jQuery.browser.mo ...

  9. C#结构

    namespace STRUCT_TEST{ class Program { struct A { public int X;//不能直接对其进行赋值 public int Y; public sta ...

  10. 【Mail】telnet收发邮件过程

    telnet发送邮件 关于电子邮件的基础知识请参照:[Mail]邮件的基础知识和原理 smtp协议是一个简单的邮件传输协议,利用它我们可以将邮件发送给别人,这里将通过telnet这个程序利用smtp协 ...