public interface Menu
android.view.Menu |
Known Indirect Subclasses |
用于管理菜单中项目的界面。
默认情况下,每个活动都支持操作或选项的选项菜单。 您可以将项目添加到此菜单并处理添加的点击。 添加菜单项最简单的方法是通过MenuInflater
将XML文件Menu
入MenuInflater
。 将代码附加到点击最简单的方法是通过onOptionsItemSelected(MenuItem)
和onContextItemSelected(MenuItem)
。
不同的菜单类型支持不同功能:
condensed title
. The expanded menus (only available if six or more menu items are visible, reached via the 'More' item in the icon menu) do not show item icons, and item check marks are discouraged. 有关创建菜单的更多信息,请阅读 Menus开发人员指南。
Constants |
|
---|---|
int |
CATEGORY_ALTERNATIVE 对于当前正在显示的数据的备选操作的项目/组的顺序整数的类别代码 - 或将其与基准值相加。 |
int |
CATEGORY_CONTAINER 类别代码,用于作为容器一部分的项目/组的顺序整数 - 或者/将其与您的基本值相加。 |
int |
CATEGORY_SECONDARY 用于用户提供的辅助(不常使用)选项的项目/组的顺序整数的类别代码 - 或者将其与您的基本值相加。 |
int |
CATEGORY_SYSTEM 系统提供的项目/组的订单整数的类别代码 - 或者将其与您的基本值相加。 |
int |
FIRST 组和项目标识符整数的第一个值。 |
int |
FLAG_ALWAYS_PERFORM_CLOSE 标记为 |
int |
FLAG_APPEND_TO_GROUP 标记为 |
int |
FLAG_PERFORM_NO_CLOSE 标记为 |
int |
NONE 当您不关心它们时用于组和项目标识符整数的值。 |
Public methods |
|
---|---|
abstract MenuItem |
add(int groupId, int itemId, int order, CharSequence title) 向菜单添加一个新项目。 |
abstract MenuItem |
add(int titleRes) 向菜单添加一个新项目。 |
abstract MenuItem |
add(CharSequence title) 向菜单添加一个新项目。 |
abstract MenuItem |
add(int groupId, int itemId, int order, int titleRes) 采用字符串资源标识符而非字符串本身的 |
abstract int |
addIntentOptions(int groupId, int itemId, int order, ComponentName caller, Intent[] specifics, Intent intent, int flags, MenuItem[] outSpecificItems) 添加一组对应于可针对特定意图执行的操作的菜单项。 |
abstract SubMenu |
addSubMenu(int groupId, int itemId, int order, CharSequence title) 在菜单中添加一个新的子菜单。 |
abstract SubMenu |
addSubMenu(int titleRes) 在菜单中添加一个新的子菜单。 |
abstract SubMenu |
addSubMenu(CharSequence title) 在菜单中添加一个新的子菜单。 |
abstract SubMenu |
addSubMenu(int groupId, int itemId, int order, int titleRes)
|
abstract void |
clear() 从菜单中删除所有现有的项目,并将其保留为空,就像刚刚创建的项目一样。 |
abstract void |
close() 如果打开,关闭菜单。 |
abstract MenuItem |
findItem(int id) 返回具有特定标识符的菜单项。 |
abstract MenuItem |
getItem(int index) 获取给定索引处的菜单项。 |
abstract boolean |
hasVisibleItems() 返回菜单当前是否有可见的项目项目。 |
abstract boolean |
isShortcutKey(int keyCode, KeyEvent event) 是此窗口定义的快捷键中的一个按键。 |
abstract boolean |
performIdentifierAction(int id, int flags) 执行与给定菜单标识符关联的菜单项操作。 |
abstract boolean |
performShortcut(int keyCode, KeyEvent event, int flags) 执行与给定快捷方式字符关联的菜单项操作。 |
abstract void |
removeGroup(int groupId) 删除给定组中的所有项目。 |
abstract void |
removeItem(int id) 删除具有给定标识符的项目。 |
abstract void |
setGroupCheckable(int group, boolean checkable, boolean exclusive) 控制一组特定的项目是否可以显示复选标记。 |
abstract void |
setGroupEnabled(int group, boolean enabled) 启用或禁用给定组中的所有菜单项。 |
abstract void |
setGroupVisible(int group, boolean visible) 显示或隐藏给定组中的所有菜单项。 |
abstract void |
setQwertyMode(boolean isQwerty) 控制菜单是否应以qwerty模式(字母快捷键)或12键模式(数字快捷键)运行。 |
abstract int |
size() 获取菜单中的项目数量。 |
int CATEGORY_ALTERNATIVE
对于当前正在显示的数据的备选操作的项目/组的顺序整数的类别代码 - 或将其与基准值相加。
常量值:262144(0x00040000)
int CATEGORY_CONTAINER
类别代码,用于作为容器一部分的项目/组的顺序整数 - 或者/将其与您的基本值相加。
常量值:65536(0x00010000)
int CATEGORY_SECONDARY
用于用户提供的辅助(不常使用)选项的项目/组的顺序整数的类别代码 - 或者将其与您的基本值相加。
常量值:196608(0x00030000)
int CATEGORY_SYSTEM
系统提供的项目/组的订单整数的类别代码 - 或者将其与您的基本值相加。
常量值:131072(0x00020000)
int FLAG_ALWAYS_PERFORM_CLOSE
标记为performShortcut(int, KeyEvent, int)
:如果已设置,请在执行快捷方式后关闭菜单。 关闭菜单也会重置准备好的状态。
常量值:2(0x00000002)
int FLAG_APPEND_TO_GROUP
标记为 addIntentOptions(int, int, int, ComponentName, Intent[], Intent, int, MenuItem[])
:如果设置,请勿自动删除同一组中的任何现有菜单项。
常数值:1(0x00000001)
int FLAG_PERFORM_NO_CLOSE
标记为 performShortcut(int, KeyEvent, int)
:如果设置了,请勿在执行快捷方式后关闭菜单。
常数值:1(0x00000001)
MenuItem add (int groupId, int itemId, int order, CharSequence title)
向菜单添加一个新项目。 此项目显示标签的给定标题。
Parameters | |
---|---|
groupId |
int : The group identifier that this item should be part of. This can be used to define groups of items for batch state changes. Normally use NONE if an item should not be in a group. |
itemId |
int : Unique item ID. Use NONE if you do not need a unique ID. |
order |
int : The order for the item. Use NONE if you do not care about the order. See getOrder() . |
title |
CharSequence : The text to display for the item. |
Returns | |
---|---|
MenuItem |
The newly added menu item. |
MenuItem add (int titleRes)
向菜单添加一个新项目。 此项目显示标签的给定标题。
Parameters | |
---|---|
titleRes |
int : Resource identifier of title string. |
Returns | |
---|---|
MenuItem |
The newly added menu item. |
MenuItem add (CharSequence title)
向菜单添加一个新项目。 此项目显示标签的给定标题。
Parameters | |
---|---|
title |
CharSequence : The text to display for the item. |
Returns | |
---|---|
MenuItem |
The newly added menu item. |
MenuItem add (int groupId, int itemId, int order, int titleRes)
add(int, int, int, CharSequence)
上的变体采用字符串资源标识符而不是字符串本身。
Parameters | |
---|---|
groupId |
int : The group identifier that this item should be part of. This can also be used to define groups of items for batch state changes. Normally use NONE if an item should not be in a group. |
itemId |
int : Unique item ID. Use NONE if you do not need a unique ID. |
order |
int : The order for the item. Use NONE if you do not care about the order. See getOrder() . |
titleRes |
int : Resource identifier of title string. |
Returns | |
---|---|
MenuItem |
The newly added menu item. |
int addIntentOptions (int groupId, int itemId, int order, ComponentName caller, Intent[] specifics, Intent intent, int flags, MenuItem[] outSpecificItems)
添加一组对应于可针对特定意图执行的操作的菜单项。 意图通常配置为空操作,即当前活动正在处理的数据,并且包含CATEGORY_ALTERNATIVE
或CATEGORY_SELECTED_ALTERNATIVE
以查找表示愿意作为可选操作包含的活动。 但是,您可以使用任何您想要的Intent。
有关调用者 , 细节和意图参数的更多详细信息,请参见queryIntentActivityOptions(ComponentName, Intent[], Intent, int)
。 该函数返回的列表用于填充生成的菜单项。
意向的所有可能选项的菜单项都将添加给定的组和id。 您可以使用该组来控制相对于菜单中其他项目的项目排序。 通常,此功能会自动删除同一组中的菜单中的任何现有项目,并在添加项目的上方和下方放置一个分隔线; 这个行为可以用flags参数修改。 对于每个生成的项目,调用setIntent(Intent)
将相应的Intent与该项目相关联; 这意味着该活动将自动启动,无需执行其他任何操作。
Parameters | |
---|---|
groupId |
int : The group identifier that the items should be part of. This can also be used to define groups of items for batch state changes. Normally use NONE if the items should not be in a group. |
itemId |
int : Unique item ID. Use NONE if you do not need a unique ID. |
order |
int : The order for the items. Use NONE if you do not care about the order. See getOrder() . |
caller |
ComponentName : The current activity component name as defined by queryIntentActivityOptions(). |
specifics |
Intent : Specific items to place first as defined by queryIntentActivityOptions(). |
intent |
Intent : Intent describing the kinds of items to populate in the list as defined by queryIntentActivityOptions(). |
flags |
int : Additional options controlling how the items are added. |
outSpecificItems |
MenuItem : Optional array in which to place the menu items that were generated for each of the specifics that were requested. Entries may be null if no activity was found for that specific action. |
Returns | |
---|---|
int |
The number of menu items that were added. |
SubMenu addSubMenu (int groupId, int itemId, int order, CharSequence title)
在菜单中添加一个新的子菜单。 此项目显示标签的给定标题 。 要修改子菜单菜单项上的其他属性,请使用getItem()
。
请注意,您只能有一个级别的子菜单,即不能将subMenu添加到subMenu:如果尝试,将会抛出 UnsupportedOperationException
。
Parameters | |
---|---|
groupId |
int : The group identifier that this item should be part of. This can also be used to define groups of items for batch state changes. Normally use NONE if an item should not be in a group. |
itemId |
int : Unique item ID. Use NONE if you do not need a unique ID. |
order |
int : The order for the item. Use NONE if you do not care about the order. See getOrder() . |
title |
CharSequence : The text to display for the item. |
Returns | |
---|---|
SubMenu |
The newly added sub-menu |
SubMenu addSubMenu (int titleRes)
在菜单中添加一个新的子菜单。 此项目显示标签的给定标题。 要修改子菜单菜单项上的其他属性,请使用getItem()
。
Parameters | |
---|---|
titleRes |
int : Resource identifier of title string. |
Returns | |
---|---|
SubMenu |
The newly added sub-menu |
SubMenu addSubMenu (CharSequence title)
在菜单中添加一个新的子菜单。 此项目显示标签的给定标题。 要修改子菜单菜单项上的其他属性,请使用getItem()
。
Parameters | |
---|---|
title |
CharSequence : The text to display for the item. |
Returns | |
---|---|
SubMenu |
The newly added sub-menu |
SubMenu addSubMenu (int groupId, int itemId, int order, int titleRes)
addSubMenu(int, int, int, CharSequence)
上的变体为标题取得字符串资源标识符,而不是字符串本身。
Parameters | |
---|---|
groupId |
int : The group identifier that this item should be part of. This can also be used to define groups of items for batch state changes. Normally use NONE if an item should not be in a group. |
itemId |
int : Unique item ID. Use NONE if you do not need a unique ID. |
order |
int : The order for the item. Use NONE if you do not care about the order. See getOrder() . |
titleRes |
int : Resource identifier of title string. |
Returns | |
---|---|
SubMenu |
The newly added sub-menu |
MenuItem findItem (int id)
返回具有特定标识符的菜单项。
Parameters | |
---|---|
id |
int : The identifier to find. |
Returns | |
---|---|
MenuItem |
The menu item object, or null if there is no item with this identifier. |
MenuItem getItem (int index)
获取给定索引处的菜单项。
Parameters | |
---|---|
index |
int : The index of the menu item to return. |
Returns | |
---|---|
MenuItem |
The menu item. |
Throws | |
---|---|
IndexOutOfBoundsException |
when index < 0 || >= size() |
boolean hasVisibleItems ()
返回菜单当前是否有可见的项目项目。
Returns | |
---|---|
boolean |
True if there is one or more item visible, else false. |
boolean isShortcutKey (int keyCode, KeyEvent event)
是此窗口定义的快捷键中的一个按键。
Parameters | |
---|---|
keyCode |
int : the key code from KeyEvent to check. |
event |
KeyEvent : the KeyEvent to use to help check. |
Returns | |
---|---|
boolean |
boolean performIdentifierAction (int id, int flags)
执行与给定菜单标识符关联的菜单项操作。
Parameters | |
---|---|
id |
int : Identifier associated with the menu item. |
flags |
int : Additional option flags or 0. |
Returns | |
---|---|
boolean |
If the given identifier exists and is shown, returns true; else returns false. |
也可以看看:
boolean performShortcut (int keyCode, KeyEvent event, int flags)
执行与给定快捷方式字符关联的菜单项操作。
Parameters | |
---|---|
keyCode |
int : The keycode of the shortcut key. |
event |
KeyEvent : Key event message. |
flags |
int : Additional option flags or 0. |
Returns | |
---|---|
boolean |
If the given shortcut exists and is shown, returns true; else returns false. |
也可以看看:
void removeGroup (int groupId)
删除给定组中的所有项目。
Parameters | |
---|---|
groupId |
int : The group to be removed. If there are no items in this group, nothing happens. |
void removeItem (int id)
删除具有给定标识符的项目。
Parameters | |
---|---|
id |
int : The item to be removed. If there is no item with this identifier, nothing happens. |
void setGroupCheckable (int group, boolean checkable, boolean exclusive)
控制一组特定的项目是否可以显示复选标记。 这与在给定组标识符的所有菜单项上调用setCheckable(boolean)
类似,但此外,您还可以控制此组是否包含互斥的设置项目。 这应该在组的项目被添加到菜单后调用。
Parameters | |
---|---|
group |
int : The group of items to operate on. |
checkable |
boolean : Set to true to allow a check mark, false to disallow. The default is false. |
exclusive |
boolean : If set to true, only one item in this group can be checked at a time; checking an item will automatically uncheck all others in the group. If set to false, each item can be checked independently of the others. |
void setGroupEnabled (int group, boolean enabled)
启用或禁用给定组中的所有菜单项。
Parameters | |
---|---|
group |
int : The group of items to operate on. |
enabled |
boolean : If true the items will be enabled, else they will be disabled. |
也可以看看:
void setGroupVisible (int group, boolean visible)
显示或隐藏给定组中的所有菜单项。
Parameters | |
---|---|
group |
int : The group of items to operate on. |
visible |
boolean : If true the items are visible, else they are hidden. |
也可以看看:
void setQwertyMode (boolean isQwerty)
控制菜单是否应以qwerty模式(字母快捷键)或12键模式(数字快捷键)运行。
Parameters | |
---|---|
isQwerty |
boolean : If true the menu will use alphabetic shortcuts; else it will use numeric shortcuts. |