Android 资源详解(二) 菜单资源
菜单资源也是一个XML文件,定义于res/menu/main.xml目录,用R.menu.main引用
典型的菜单资源文件结构是:<menu>根原素,在其中嵌套<item>和<group>子元素,<item>中也可以嵌套<menu>元素。
<menu>根元素中没有属性,它包含<item>和<group>元素
<group>表示一个菜单组,相同的属性可以在菜单组中设置
group常见属性如下:
id: 唯一标示该菜单组的引用 id 。
menuCategory: 对菜单进行分类,定义菜单的优先级,有效值为 container 、system 、 secondary 和 altemative 。
orderInCategory: 一个分类排序整数。
checkableBehavior: 选择行为,单选、多选还是其他。有效值为 none 、all 和 single 。
visible: 是否可见, true 或者 false 。
enabled: 是否可用, true 或者 false 。
<item>表示菜单项,包含在<menu>或<group> 中的有效属性。
<item>元素的属性说明如下:
id: 唯一标示菜单的 ID 引用。
menuCategory: 菜单分类。
or由rlnCategory :分类排序。
title: 菜单标题字符串。
titleCondensed: 浓缩标题,适合标题太长的时候使用。
icon: 菜单的图标。
alphabeticShortcut: 字符快捷键。
numericShortcut: 数字快捷键。
checkable: 是否可选。
checked: 是否已经被选。
visible: 是否可见。
enabled: 是否可用。
菜单资源的使用
在menu目录中打开相应的.xml文件,添加以下代码
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context="com.example.new1.MainActivity" > <item android:title="file"> <menu> <group android:id="@+id/file_group" android:checkableBehavior="none"> <item android:id="@+id/newfile" android:title="new" android:alphabeticShortcut="n"> <!-- 添加快捷键--> </item> <item android:id="@+id/openfile" android:title="open" android:alphabeticShortcut="o"> </item> <item android:id="@+id/closefile" android:title="close" android:alphabeticShortcut="c"> </item> </group> </menu> </item> <item android:title="edit" android:icon="@drawable/pwordpress"> <!--设置图标 --> <menu> <group android:id="@+id/edit_group" android:checkableBehavior="single"> <item android:id="@+id/cut" android:title="cut" android:alphabeticShortcut="t"> </item> <item android:id="@+id/copy" android:title="copy" android:alphabeticShortcut="p"> </item> <item android:id="@+id/paste" android:title="paste" android:alphabeticShortcut="a"> </item> </group> </menu> </item> <item android:title="about" android:icon="@drawable/pyahoo"> <menu> <group android:id="@+id/about_group"> <item android:id="@+id/help" android:title="help"> </item> <item android:id="@+id/exit" android:title="exit"> </item> </group> </menu> </item> </menu>
在.java中引用,在.java中实现函数public boolean onCreatOptionsMenu(Menu)函数显示菜单
public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }
在.java中重写public boolean onOptionsItemSelected(MenuItem item)函数相应菜单事件
public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.copy) { return true; } return super.onOptionsItemSelected(item); }
本文出自 “无用大叔” 博客,请务必保留此出处http://aslonely.blog.51cto.com/6552465/1614840
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。