ITEEDU

菜单资源文件的定义

使用菜单(menu)资源

任何视图组件的创建方式都有两种:一种通过在布局文件中声明创建;另一种通过在代码中创建。菜单也不例外,我们既可以在资源文件中声明,也可以在代码中创建。

Android中的菜单分为选项菜单、上下文菜单和子菜单,都可以在XML文件中声明定义,在代码中通过MenuInflater类使用。本节我们主要讲述如何使用菜单资源来声明创建菜单。

菜单资源文件的定义

菜单资源文件也是一个XML文件,该菜单文件位于工程的res\menu\my_menu.xml目录下。通过R.menu.my_menu的方式来引用。

典型菜单资源文件的结构是这样的:<menu>根元素,在<menu>根元素里面会嵌套<item>和<group>子元素,<item>元素中也可嵌套<menu>形成子菜单。

<menu>根元素没有属性,它包含<item>和<group>子元素。

<group>表示一个菜单组,相同的菜单组可以一起设置其属性,例如visible、enabled和checkable等。<group>元素的属性说明如下。

  1. id:唯一标示该菜单组的引用id。
  2. menuCategory:对菜单进行分类,定义菜单的优先级,有效值为container、system、secondary和alternative。
  3. orderInCategory:一个分类排序整数。
  4. checkableBehavior:选择行为,单选、多选还是其他。有效值为none、all和single。
  5. visible:是否可见,true或者false。
  6. enabled:是否可用,true或者false。

<item>表示菜单项,包含在<menu>或<group>中的有效属性。<item>元素的属性说明如下。

  1. id:唯一标示菜单的ID引用。
  2. menuCategory:菜单分类。
  3. orderInCategory:分类排序。
  4. title:菜单标题字符串。
  5. titleCondensed:浓缩标题,适合标题太长的时候使用。
  6. icon:菜单的图标。
  7. alphabeticShortcut:字符快捷键。
  8. numericShortcut:数字快捷键。
  9. checkable:是否可选。
  10. checked:是否已经被选。
  11. visible:是否可见。
  12. enabled:是否可用。