A menu resource defines an application menu (Options Menu, Context Menu, or submenu) that can be inflated withMenuInflater
.
For a guide to using menus, see the Menus developer guide.
-
FILE LOCATION:
-
res/menu/filename.xml
The filename will be used as the resource ID.
COMPILED RESOURCE DATATYPE:
-
Resource pointer to a
Menu
(or subclass) resource.
RESOURCE REFERENCE:
-
In Java:
R.menu.filename
In XML:@[package:]menu.filename
SYNTAX:
-
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@[+][package:]id/resource_name" android:title="string" android:titleCondensed="string" android:icon="@[package:]drawable/drawable_resource_name" android:onClick="method name" android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"] android:actionLayout="@[package:]layout/layout_resource_name" android:actionViewClass="class name" android:actionProviderClass="class name" android:alphabeticShortcut="string" android:numericShortcut="string" android:checkable=["true" | "false"] android:visible=["true" | "false"] android:enabled=["true" | "false"] android:menuCategory=["container" | "system" | "secondary" | "alternative"] android:orderInCategory="integer" /> <group android:id="@[+][package:]id/resource name" android:checkableBehavior=["none" | "all" | "single"] android:visible=["true" | "false"] android:enabled=["true" | "false"] android:menuCategory=["container" | "system" | "secondary" | "alternative"] android:orderInCategory="integer" > <item /> </group> <item > <menu> <item /> </menu> </item> </menu>
ELEMENTS:
- EXAMPLE:
-
XML file saved at
res/menu/example_menu.xml
:<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/item1" android:title="@string/item1" android:icon="@drawable/group_item1_icon" android:showAsAction="ifRoom|withText"/> <group android:id="@+id/group"> <item android:id="@+id/group_item1" android:onClick="onGroupItemClick" android:title="@string/group_item1" android:icon="@drawable/group_item1_icon" /> <item android:id="@+id/group_item2" android:onClick="onGroupItemClick" android:title="@string/group_item2" android:icon="@drawable/group_item2_icon" /> </group> <item android:id="@+id/submenu" android:title="@string/submenu_title" android:showAsAction="ifRoom|withText" > <menu> <item android:id="@+id/submenu_item1" android:title="@string/submenu_item1" /> </menu> </item> </menu>
The following application code inflates the menu from the
onCreateOptionsMenu(Menu)
callback and also declares the on-click callback for two of the items:public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.example_menu, menu); return true; } public void onGroupItemClick(MenuItem item) { // One of the group items (using the onClick attribute) was clicked // The item parameter passed here indicates which item it is // All other menu item clicks are handled by
onOptionsItemSelected()
}Note: The
android:showAsAction
attribute is available only on Android 3.0 (API Level 11) and greater. -
-
菜单资源定义应用程序菜单(选项菜单,右键菜单,或子菜单),可以用充气
MenuInflater
。对于使用指南菜单,看到菜单 开发指南。
-
文件位置:
-
RES /菜单/ 文件名 的.xml
文件名 将被用作资源ID。
编译的资源数据类型:
-
资源指针
菜单
(或子类)的资源。
资源引用:
-
在Java:
。R.menu 名
在XML:@ [ 包:]菜单中的文件名
句法:
-
<?xml的 名 “ 机器人:actionProviderClass = ” 级
内容:
- 例:
-
在保存XML文件
RES /菜单/ example_menu.xml
:<menu xmlns:android = "http://schemas.android.com/apk/res/android" > <item android:id = "@+id/item1" android:title = "@string/item1" android:icon = "@drawable/group_item1_icon" android:showAsAction = "ifRoom|withText" /> <group android:id = "@+id/group" > <item android:id = "@+id/group_item1" android:onClick = "onGroupItemClick" android:title = "@string/group_item1" android:icon = "@drawable/group_item1_icon" /> <item android:id = "@+id/group_item2" android:onClick = "onGroupItemClick" android:title = "@string/group_item2" android:icon = "@drawable/group_item2_icon" /> </group> <item android:id = "@+id/submenu" android:title = "@string/submenu_title" android:showAsAction = "ifRoom|withText" > <menu> <item android:id = "@+id/submenu_item1" android:title = "@string/submenu_item1" /> </menu> </item> </menu>
下面的应用程序代码从膨胀菜单
onCreateOptionsMenu(菜单)
回调,并声明上单击回调两个项目:public boolean onCreateOptionsMenu ( Menu menu ) { MenuInflater inflater = getMenuInflater (); inflater . inflate ( R . menu . example_menu , menu ); return true ; } public void onGroupItemClick ( MenuItem item ) { //其中一个组项目(使用onclick属性)被点击 //这里传递的项目参数表明它是哪个项目 //其他所有菜单项点击被处理
onOptionsItemSelected()
}注:该
机器人:showAsAction
属性仅适用于Android 3.0(API等级11)和更大。
-