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. div赋值,取值和input赋值,取值

    一.div取值 <div id="txtXiaofei" class="txt-panel">你好</div> 获取div的值$(&qu ...

  2. Beta-1阶段成员贡献分(代组长更新)

    组名:天天向上 组长:王森 小组成员:张金生.张政.林莉.胡丽娜 小组贡献分如下:王森5.2   张金生5.1  张政 5.0   林莉 4.9 胡丽娜 4.8 成员得分如下: 成员 基础分 表现分 ...

  3. Oracle 表空间

    表空间 编辑 本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 表空间是数据库的逻辑划分,一个表空间只能属于一个数据库.所有的数据库对象都存放在指定的表空间中.但主要存放的是表 ...

  4. 初试Nodejs——使用keystonejs创建博客网站2(修改模板)

    上一篇(初试Nodejs——使用keystonejs创建博客网站1(安装keystonejs))讲了keystonejs的安装.安装完成后,已经具备了基本的功能,我们需要对页面进行初步修改,比如,增加 ...

  5. The different between ng-grid & ui-grid

    ui-grid is replacing ng-grid, and support for ng-grid is getting thin as most of the original (2.x) ...

  6. js和php对bool值的判断区别

    一.将一种数据类型转换为bool值时,PHP和JS的转换规则不同 PHP中 当转换为 boolean 时,以下值被认为是 FALSE : 布尔值 FALSE 本身 整型值 0(零) 浮点型值 0.0( ...

  7. Mongodb无法访问28107的问题

    解压mongodb文件后,放到指定文件,最好别有空格.汉字之类的文件中 此时在mongodb文件夹下,建立一个 db 文件夹,此时执行启动命令,默认27017端口号可以打开,但是28017端口无法打开 ...

  8. [python] 创建临时文件-tempfile模块

    This module generates temporary files and directories. It works on all supported platforms.In versio ...

  9. EXCEL文件格式不匹配,或者已经损坏,除非信任来源

    修改注册表解决: .打开注册表编辑器 方法:开始 -> 运行 -> 输入regedit -> 确定 .找到注册表子项 HKEY_CURRENT_USER\Software\Micro ...

  10. DataGridView in TabControl and CellValidating lead to problems

    I created a little form with a TabControl on it and a combobox. On the  first page i added a DataGri ...