Android 备忘录 -- Menu
来源:互联网 发布:dnf台服数据库爆率修改 编辑:程序博客网 时间:2024/06/15 23:40
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" —— 用来给菜单项指定IDandroid: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" ——用来给菜单项指定IDandroid: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.在活动文件中重写相应的方法
包括两个方法:onCreateOptionsMenu和onOptionsItemSelected
其中 onCreateOptionsMenu 用来绑定menu文件
onOptionsItemSelected 用来自定义响应操作,即各个菜单项点击后的具体执行动作
代码如下
@Overridepublic boolean onCreateOptionsMenu(Menu menu){//第一个参数指定要使用的xml资源文件,第二个参数指定我们创建的菜单项添加到哪一个Menu对象里getMenuInflater().inflate(R.menu.main, menu);return super.onCreateOptionsMenu(menu);//return true;—— 允许创建的菜单显示出来//return false;—— 不允许创建的菜单显示}
@Overridepublic 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/
0 0
- Android 备忘录 -- Menu
- android 备忘录
- Android备忘录
- android备忘录
- Android Menu
- Android Menu
- android menu
- Android MENU
- android menu
- Android Menu
- Android Menu
- Android Menu
- android menu
- Android menu
- android menu
- Android Menu
- android menu
- Android Menu
- Android自定义控件之循环旋转弧度不断变化圆弧的控件
- 【栈】洛谷 P1165 日志分析
- 题解_Automatic Judge
- leetcode图
- 【搜索】洛谷 P1164 小A点菜
- Android 备忘录 -- Menu
- 学习笔记---文件基础
- shell 编程
- AOP
- Naive Bayes贝叶斯
- 蓝桥杯 算法训练 字串统计 JAVA
- 【递推】洛谷 P1176 路径计数2
- PLSQL实验
- 【排序】洛谷 P1177 【模板】快速排序