Android 备忘录 -- Menu

xiaoxiao2021-02-28  47

1.创建文件

在res目录下创建一个menu文件夹,再在里面创建一个Android XML File,命名为 main

2.给菜单文件添加内容

在打开的main.xml文件里可添加两个标签用于设置菜单项和分组,这两个标签是<item>和<group>。

item按钮也就是具体的菜单项。

代码如下

<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/id_action_add" app:showAsAction="always" android:title="add" android:icon="@mipmap/ic_launcher" android:orderInCategory="1" /> </menu> 子项细节说明: 

1.<item>标签的属性含义如下:

android:id="@+id/id_action_add" —— 用来给菜单项指定ID android:title="add" —— 用来指定菜单项显示的文字 android:icon="@mipmap/ic_launcher" —— 用来自定义菜单项显示的图片 app:showAsAction="always" —— 用来指定菜单项的显示与否,有三个可选项: always:总是显示在界面上 never:不显示在界面上,只出现在右边的三个点中 ifRoom:如果有位置才显示,不然就出现在右边的三个点中 android:orderInCategory="1" —— 用来设置优先级,值越大优先级越低 titleCondensed —— 菜单项的短标题。当菜单项标题太长时会显示该属性值 menuCategory —— 同种菜单项的种类。该属性可取4个值:Container、system、secondary和alternative。通过menuCategroy属性可以控制菜单项的位置。例如将属性设为system,表示该菜单项是系统菜单,应放在其他种类菜单项的后面。 -------------------------分割线,以下属性不常用----------------------- alphabeticShortcut —— 菜单项的字母快捷键 numericShortcut —— 菜单项的数字快捷键 checkable —— 表示菜单项是否带复选框。该属性可设计为true或false checked —— 如果菜单项带复选框(checkable属性为true),该属性表示复选框默认状态是否被选中。可设置的值为true或false visible —— 菜单项默认状态是否可视 enable —— 菜单项默认状态是否被激活

2.<group>标签的属性含义如下:

android:id="@+id/id_action_add" ——用来给菜单项指定ID android:orderInCategory="1" —— 与<item>标签的同名属性含义相同。只是作用域为菜单组 checkableBehavior —— 设置该组所有菜单项上显示的选择组件(CheckBox或Radio Button)。如果将该属性值设为all,显示CheckBox组件;如果设为single,显示Radio Button组件;如果设为none,显示正常的菜单项(不显示任何选择组件)。 要注意的是,Android SDK官方文档在解释该属性时有一个笔误,原文是: Whether the items are checkable. Valid values: none, all(exclusive/radiobuttons), single(non-exclusive/checkboxes). 相反了,正确应该是 menuCategory —— 与<item>标签的同名属性含义相同。只是作用域为菜单组 all(non-exclusive/checkboxes),single(exclusive/radiobuttons). -------------------------分割线,以下属性不常用----------------------- visible —— 表示当前组中所有菜单项是否显示。该属性可设置的值是true或false enable —— 表示当前组中所有菜单项是否被激活。该属性可设置的值是true或false

3.在活动文件中重写相应的方法

包括两个方法:onCreateOptionsMenuonOptionsItemSelected

    其中 onCreateOptionsMenu 用来绑定menu文件

    onOptionsItemSelected 用来自定义响应操作,即各个菜单项点击后的具体执行动作

    代码如下    

@Override public boolean onCreateOptionsMenu(Menu menu) { //第一个参数指定要使用的xml资源文件,第二个参数指定我们创建的菜单项添加到哪一个Menu对象里 getMenuInflater().inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); //return true; —— 允许创建的菜单显示出来 //return false; —— 不允许创建的菜单显示 }

@Override public boolean onOptionsItemSelected(MenuItem item) { //根据ID判断点击的是哪一个菜单项,再做出响应操作 switch (item.getItemId()) { case R.id. id_action_add: //事件——响应操作 break; } return true; //常用项,表示处理完菜单项的事件,不需要将该事件继续传播, //return super.onOptionsItemSelected(item); —— 对没有处理的事件,交给父类来处理 }

参考:

第一行代码(书籍)

http://blog.csdn.net/yuzhongchun/article/details/8956256/

转载请注明原文地址: https://www.6miu.com/read-75348.html

最新回复(0)