菜单资源定义可通过
MenuInflater
进行扩充的应用菜单,包括选项菜单、上下文菜单和子菜单。
有关使用菜单的指南,请参阅菜单开发者指南。
专注于为中小企业提供成都网站制作、成都网站建设、
外贸营销网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业
大邑县免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
- 文件位置:
res/menu/filename.xml
该文件名将用作资源 ID。- 编译后的资源数据类型:
- 指向
Menu
(或其子类)资源的资源指针。 - 资源引用:
- 在 Java 中:
R.menu.filename
在 XML 中:@[package:]menu.filename
- 语法:
-
- 元素:
- 必需。该元素必须是根节点。包含
和/或
元素。属性:
xmlns:android
- XML 命名空间。必需。定义 XML 命名空间,该命名空间必须为
"http://schemas.android.com/apk/res/android"
。
- 菜单项。可能包含
元素(用于子菜单)。必须是
或
元素的子元素。属性:
android:id
- 资源 ID。唯一资源 ID。要为此项创建新的资源 ID,请使用以下形式:
"@+id/name"
。加号表示应将其创建为新 ID。 android:title
- 字符串资源。字符串资源或原始字符串形式的菜单标题。
android:titleCondensed
- 字符串资源。字符串资源或原始字符串形式的压缩标题。此标题在正常标题过长的情况下使用。
android:icon
- 可绘制资源。用作菜单项图标的图片。
android:onClick
- 方法名称。点击此菜单项时调用的方法。此方法必须在 Activity 中声明为公共方法,并接受
MenuItem
作为其唯一参数,该参数指示所点击的项。此方法优先于对 onOptionsItemSelected()
的标准回调。请参见页面结尾处的示例。警告:如果您使用 ProGuard(或类似工具)混淆代码,切记不要重命名在此属性中指定的方法,因为这样会破坏功能。
在 API 级别 11 中引入。
android:showAsAction
- 关键字。指示此项应在应用栏中显示为操作项的时机和方式。菜单项只有在 Activity 包含应用栏时才能显示为操作项。有效值:
值 | 说明 |
---|
ifRoom | 只有在应用栏中有空间的情况下,才将此项放置其中。如果没有足够的空间来容纳标记为 "ifRoom" 的所有项,则 orderInCategory 值最低的项会显示为操作,其余项将显示在溢出菜单中。 |
withText | 此外,还会随操作项添加标题文本(由 android:title 定义)。您可以将此值与某个其他值一起作为标记集添加,用竖线 | 分隔。 |
never | 不得将此项放在应用栏中,而应将其列在应用栏的溢出菜单中。 |
always | 始终将此项放在应用栏中。除非此项必须始终显示在操作栏中,否则请勿使用该值。将多个项设置为始终显示为操作项,会导致它们与应用栏中的其他界面重叠。 |
collapseActionView | 与此操作项相关联的操作视图(由 android:actionLayout 或 android:actionViewClass 声明)是可收起的。 在 API 级别 14 中引入。 |
如需了解详情,请参阅添加应用栏培训课程。
在 API 级别 11 中引入。
android:actionLayout
- 布局资源。用作操作视图的布局。
如需了解详情,请参阅操作视图和操作提供器。
在 API 级别 11 中引入。
android:actionViewClass
- 类名称。要用作操作视图的
View
的完全限定类名称。例如,"android.widget.SearchView"
表示将使用 SearchView
作为操作视图。如需了解详情,请参阅操作视图和操作提供器。
警告:如果您使用 ProGuard(或类似工具)混淆代码,切记不要重命名在此属性中指定的类,因为这样会破坏功能。
在 API 级别 11 中引入。
android:actionProviderClass
- 类名称。要用于代替操作项的
ActionProvider
的完全限定类名称。例如,"android.widget.ShareActionProvider"
表示将使用 ShareActionProvider
。如需了解详情,请参阅操作视图和操作提供器。
警告:如果您使用 ProGuard(或类似工具)混淆代码,切记不要重命名在此属性中指定的类,因为这样会破坏功能。
在 API 级别 14 中引入。
android:alphabeticShortcut
- 字符。字母快捷键的字符。
android:numericShortcut
- 整数。数字快捷键的数字。
android:alphabeticModifiers
- 关键字。菜单项的字母快捷键的辅助键。默认值对应于 Control 键。有效值:
值 | 说明 |
---|
META | 对应于 Meta 元键 |
CTRL | 对应于 Control 元键 |
ALT | 对应于 Alt 元键 |
SHIFT | 对应于 Shift 元键 |
SYM | 对应于 Sym 元键 |
FUNCTION | 对应于 Function 元键 |
注意:您可以在一个属性中指定多个关键字。例如,android:alphabeticModifiers="CTRL|SHIFT"
表示要触发相应的菜单项,用户需要同时按下 Control 和 Shift 元键以及快捷键。
您可以使用 setAlphabeticShortcut()
方法以编程方式设置属性值。要详细了解 alphabeticModifier
属性,请转到 alphabeticModifiers
。
android:numericModifiers
- 关键字。菜单项的数字快捷键的辅助键。 默认值对应于 Control 键。有效值:
值 | 说明 |
---|
META | 对应于 Meta 元键 |
CTRL | 对应于 Control 元键 |
ALT | 对应于 Alt 元键 |
SHIFT | 对应于 Shift 元键 |
SYM | 对应于 Sym 元键 |
FUNCTION | 对应于 Function 元键 |
注意:您可以在一个属性中指定多个关键字。例如,android:numericModifiers="CTRL|SHIFT"
表示要触发相应的菜单项,用户需要同时按下 Control 和 Shift 元键以及快捷键。
您可以使用 setNumericShortcut()
方法以编程方式设置属性值。要详细了解 numericModifier
属性,请转到 numericModifiers
。
android:checkable
- 布尔值。如果该项可勾选,则为“true”。
android:checked
- 布尔值。如果默认情况下该项为勾选状态,则为“true”。
android:visible
- 布尔值。如果默认情况下该项可见,则为“true”。
android:enabled
- 布尔值。如果默认情况下该项为启用状态,则为“true”。
android:menuCategory
- 关键字。对应于
Menu
CATEGORY_*
常量的值,这些常量用于定义项的优先级。有效值:
值 | 说明 |
---|
container | 这类项归属于容器。 |
system | 这类项由系统提供。 |
secondary | 这类项是用户提供的次要(不常用)选项。 |
alternative | 这类项是对当前显示的数据的替代操作。 |
android:orderInCategory
- 整数。项在组内的“重要性”顺序。
- 一个菜单组,用于创建一组具有相同特征(例如是否可见、是否启用或是否可勾选)的项。包含一个或多个
元素。必须是
元素的子元素。属性:
android:id
- 资源 ID。唯一资源 ID。要为此项创建新的资源 ID,请使用以下形式:
"@+id/name"
。加号表示应将其创建为新 ID。 android:checkableBehavior
- 关键字。组的可勾选行为类型。有效值:
值 | 说明 |
---|
none | 不可勾选 |
all | 可以勾选所有项(使用复选框) |
single | 只能勾选一项(使用单选按钮) |
android:visible
- 布尔值。如果组可见,则为“true”。
android:enabled
- 布尔值。如果组为启用状态,则为“true”。
android:menuCategory
- 关键字。对应于
Menu
CATEGORY_*
常量的值,这些常量用于定义组的优先级。有效值:
值 | 说明 |
---|
container | 这类组归属于容器。 |
system | 这类组由系统提供。 |
secondary | 这类组是用户提供的次要(不常用)选项。 |
alternative | 这类组是对当前显示的数据的替代操作。 |
android:orderInCategory
- 整数。项在类别中的默认顺序。
- 示例:
- 保存在
res/menu/example_menu.xml
的 XML 文件:
-
以下应用代码会通过 onCreateOptionsMenu(Menu)
回调扩充菜单,还会声明其中两个项的点击回调:
java代码:
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()
}
kotlin代码:
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.example_menu, menu)
return true
}
fun onGroupItemClick(item: MenuItem) {
// 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()
}
分享文章:Android复习(二)应用资源——>菜单-创新互联
网址分享:
http://jkwzsj.com/article/dipcjc.html