在XML中声明一个动作按钮

所有的动作按钮和其他的可以利用的items都定义在menu资源文件夹中的XML文件中。为了增加一个动作按钮到工具栏,需要在工程 /res/menu/ 目录下面创建一个新的XML文件。

对每个需要添加的item增加一个<item>元素包含到工具栏中,例如 res/menu/main_activity_actions.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<!-- Search, should appear as action button -->
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
yourapp:showAsAction="ifRoom"  />...
</menu>

上面声明了查询动作应该以一个动作按钮出现当工具栏中的空间是足够大的时候。但是设置动作按钮应该溢出的(默认的情况下,所有的动作按钮都是溢出的,但是对于每个你将要设计的动作都应该明确的声明,这是个好的实践)。

图标icon属性attribute需要一个图像资源ID,跟在 @drawable/后面的名字必须是一个bitmap图像,这个图像需要保存 工程目录 /res/drawable/ 下面。 例如

"@drawable/ic_action_search" 指的就是 ic_action_search.png。 (每个图像资源最好能提供四个不同大小的形式分别放在drawable-*四个文件夹下)类似的, 主题title属性使用一个字符串资源,这个字符串资源由一个XML文件定义在 res/values/ 目录下面。

注意: 当需要为你的程序创建一个icons图标时或者其他的bitmap时,一定要提供多种版本使得不同的图标适应不同大小的屏幕。关于这个的更多的讨论将在《支持不同的屏幕》这节课中讨论到。

如果你使用的支持库(support Library)可以兼容最低至Android2.1,那么showAsAction属性不能android:namespace这样使用。 相反,这个属性是由支持库提供的并且你必须自己定义XML命名空间并使用这个命名空间作为属性前缀。

将动作添加到工具栏

要将菜单项 menu items添加到工具栏,可以在Activity中重载onCreateOptionsMenu()方法  并将菜单资源填充(inflate)到给定的菜单对象中。例如,

@Overridepublic boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();inflater.inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}

  

响应动作按钮

当用户按下某个动作按钮时,系统调用 activity的onOptionsItemSelected()函数。在重载这个方法时,调用 getItemId()函数来确定MenuItem中哪个item被按下, 返回的ID和在<item>元素中响应的 android:id属性相匹配。

@Overridepublic boolean onOptionsItemSelected(MenuItem item)
{
// Handle presses on the action bar items
switch (item.getItemId())
{
case R.id.action_search:
openSearch();
return true;
case R.id.action_settings:
openSettings();
return true;
default:
return super.onOptionsItemSelected(item);
}
}

  

 然后通过调用setDisplayHomeAsUpEnabled()使得这个应用程序图标向上弹起让它可以使用

@Overridepublic void onCreate(Bundle savedInstanceState)
{super.onCreate(savedInstanceState);setContentView(R.layout.activity_displaymessage);getSupportActionBar().setDisplayHomeAsUpEnabled(true);// 如果你的SDK版本是11以上的,那么用// getActionBar().setDisplayHomeAsUpEnabled(true);
}

  

 因为系统知道MainActivity对于DisplayMessageActivity来说是父活动( parent activity), 当用户按下按钮时,系统恰当的自动导航到父活动(用户不必自己处理按钮的事件。

转载于:https://www.cnblogs.com/aituming/p/3830820.html

Android 加入一个动作按钮相关推荐

  1. android 浮动小图标,android - 调整浮动动作按钮的图标大小(fab)

    android - 调整浮动动作按钮的图标大小(fab) 新的浮动操作按钮应为56dp x 56dp,其中的图标应为24dp x 24dp. 所以图标和按钮之间的空间应该是16dp. android: ...

  2. Android FloatingActionButton(浮动动作按钮的动画 ) 使用详情

    目录 前言 1. Floating Action Button 2. 制作浮动操作按钮的菜单 2.1 显示浮动操作按钮菜单 2.2 隐藏浮动操作按钮菜单 3. 一个新的圆形动画 3.1 创建一个Act ...

  3. android 悬浮按钮 功能实现,怎么在Android中利用FloatingActionButton实现一个悬浮按钮效果...

    怎么在Android中利用FloatingActionButton实现一个悬浮按钮效果 发布时间:2020-12-02 17:41:30 来源:亿速云 阅读:238 作者:Leah 今天就跟大家聊聊有 ...

  4. android升序降序按钮,创建一个按钮,将排序MYSQL查询升序和降序

    我是一名学生编码器. 我想创建一个排序按钮,当按下时,按升序排序MYSQL查询.然后再次按下时,它将按降序排列.对,现在,它只是显示升序和降序表背靠背.创建一个按钮,将排序MYSQL查询升序和降序 形 ...

  5. Android播放音频之按钮控制

    控制音量和播放 良好的用户体验是可预测的. 如果您的应用程式播放媒体,您的使用者必须使用装置,蓝牙耳机或耳机的硬体或软体音量控制来控制应用程式的音量. 类似地,在适当和可用的情况下,播放,停止,暂停, ...

  6. android实现计算器功能吗,利用Android实现一个简单的计算器功能

    利用Android实现一个简单的计算器功能 发布时间:2020-11-20 16:25:01 来源:亿速云 阅读:90 作者:Leah 今天就跟大家聊聊有关利用Android实现一个简单的计算器功能, ...

  7. 自定义Android带图片的按钮

    自定义Android带图片的按钮 前言 现在移动设备的按钮设计讲究大图标小文字,希望用户只要一看到图标便能知道这个按钮是干嘛的,但又要有必要的文字提示,最常见的就数搜索按钮了,上面一个大大的放大镜图标 ...

  8. android倒角按钮,Android实现圆角Button按钮

    本文实例讲述了Android开发圆角Button按钮实现过程,分享给大家供大家参考,具体内容如下 需求及效果图: 实现思路: 1.shape实现圆角 在drawable新建两个xml 文件, 这两个 ...

  9. android 按钮 菜单,(期末要考啊)Android的menu(菜单)按钮的使用

    (期末要考啊)Android的menu(菜单)按钮的使用 安卓 Android的菜单按钮 使用xml的方式创建菜单项在res下的menu目录下新建一个main.xml文件,以menu为根节点,添加一个 ...

最新文章

  1. 关于图片缩放的两种方式
  2. SVN下载谷歌上的代码
  3. CentOS7 常用命令集合
  4. C++笔记-空指针加强、auto自动类型
  5. 新加坡区块链公司Tribe Accelerator完成7000万美元融资
  6. 基于jquery的带事件显示功能的日历板插件calendar.js
  7. Dao层抽取BaseDao公共方法
  8. ipad的文件连接服务器,使用Termius从iPad连接到Linux服务器
  9. MyBatis官方文档——SQL语句构建及日志部分
  10. 什么是推荐系统?推荐系统类型、用例和应用
  11. java单例模式使用_Java单例模式的应用
  12. Coreldraw 制作透明小水滴按钮(转)
  13. Access数据库,以及一些其他的库。
  14. GitLab CI/CD 配置指南 .gitlab-ci.yml文件的配置
  15. 几个潜在的AI科研助手
  16. SecureCRT鼠标快速复制粘贴
  17. 南卫理公会大学计算机科学,南卫理公会大学计算机科学专业.pdf
  18. 什么是人工智能技术?
  19. VUE3 reactive与toRefs函数
  20. 查看linux系统IPV6地址

热门文章

  1. 拉格朗日插值_拉格朗日插值定理的理论基础
  2. 克罗内克内积 Kronecker product
  3. 吴恩达深度学习 —— 3.6 激活函数
  4. leetcode - 101. 对称二叉树
  5. sparseTM的公式理解
  6. Ubuntu16.04--code::blocks16.01 的代码拷贝到Windows 8.1--visual studio 2013 注意事项
  7. 回文判断--链表实现
  8. 最大子序列和的四种求解算法及其时间比较
  9. java从mysql中查数据_java怎么从数据库中查询数据并输出
  10. c语言 printf_C语言(4) 屏幕输出指令printf