Most visited

Recently visited

Added in API level 1

Menu

public interface Menu

android.view.Menu
Known Indirect Subclasses


用于管理菜单中项目的界面。

默认情况下,每个活动都支持操作或选项的选项菜单。 您可以将项目添加到此菜单并处理添加的点击。 添加菜单项最简单的方法是通过MenuInflater将XML文件MenuMenuInflater 将代码附加到点击最简单的方法是通过onOptionsItemSelected(MenuItem)onContextItemSelected(MenuItem)

不同的菜单类型支持不同功能:

  1. Context menus: Do not support item shortcuts and item icons.
  2. Options menus: The icon menus do not support item check marks and only show the item's 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.
  3. Sub menus: Do not support item icons, or nested sub menus.

Developer Guides

有关创建菜单的更多信息,请阅读 Menus开发人员指南。

Summary

Constants

int CATEGORY_ALTERNATIVE

对于当前正在显示的数据的备选操作的项目/组的顺序整数的类别代码 - 或将其与基准值相加。

int CATEGORY_CONTAINER

类别代码,用于作为容器一部分的项目/组的顺序整数 - 或者/将其与您的基本值相加。

int CATEGORY_SECONDARY

用于用户提供的辅助(不常使用)选项的项目/组的顺序整数的类别代码 - 或者将其与您的基本值相加。

int CATEGORY_SYSTEM

系统提供的项目/组的订单整数的类别代码 - 或者将其与您的基本值相加。

int FIRST

组和项目标识符整数的第一个值。

int FLAG_ALWAYS_PERFORM_CLOSE

标记为 performShortcut(int, KeyEvent, int) :如果设置,请在执行快捷方式后关闭菜单。

int FLAG_APPEND_TO_GROUP

标记为 addIntentOptions(int, int, int, ComponentName, Intent[], Intent, int, MenuItem[]) :如果设置,请勿自动删除同一组中的任何现有菜单项。

int FLAG_PERFORM_NO_CLOSE

标记为 performShortcut(int, KeyEvent, int) :如果设置了,请不要在执行快捷方式后关闭菜单。

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)

采用字符串资源标识符而非字符串本身的 add(int, int, int, CharSequence)变体。

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)

addSubMenu(int, int, int, CharSequence)上的变体为标题取得字符串资源标识符,而不是字符串本身。

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()

获取菜单中的项目数量。

Constants

CATEGORY_ALTERNATIVE

Added in API level 1
int CATEGORY_ALTERNATIVE

对于当前正在显示的数据的备选操作的项目/组的顺序整数的类别代码 - 或将其与基准值相加。

常量值:262144(0x00040000)

CATEGORY_CONTAINER

Added in API level 1
int CATEGORY_CONTAINER

类别代码,用于作为容器一部分的项目/组的顺序整数 - 或者/将其与您的基本值相加。

常量值:65536(0x00010000)

CATEGORY_SECONDARY

Added in API level 1
int CATEGORY_SECONDARY

用于用户提供的辅助(不常使用)选项的项目/组的顺序整数的类别代码 - 或者将其与您的基本值相加。

常量值:196608(0x00030000)

CATEGORY_SYSTEM

Added in API level 1
int CATEGORY_SYSTEM

系统提供的项目/组的订单整数的类别代码 - 或者将其与您的基本值相加。

常量值:131072(0x00020000)

FIRST

Added in API level 1
int FIRST

组和项目标识符整数的第一个值。

常数值:1(0x00000001)

FLAG_ALWAYS_PERFORM_CLOSE

Added in API level 1
int FLAG_ALWAYS_PERFORM_CLOSE

标记为performShortcut(int, KeyEvent, int) :如果已设置,请在执行快捷方式后关闭菜单。 关闭菜单也会重置准备好的状态。

常量值:2(0x00000002)

FLAG_APPEND_TO_GROUP

Added in API level 1
int FLAG_APPEND_TO_GROUP

标记为 addIntentOptions(int, int, int, ComponentName, Intent[], Intent, int, MenuItem[]) :如果设置,请勿自动删除同一组中的任何现有菜单项。

常数值:1(0x00000001)

FLAG_PERFORM_NO_CLOSE

Added in API level 1
int FLAG_PERFORM_NO_CLOSE

标记为 performShortcut(int, KeyEvent, int) :如果设置了,请勿在执行快捷方式后关闭菜单。

常数值:1(0x00000001)

NONE

Added in API level 1
int NONE

当您不关心它们时用于组和项目标识符整数的值。

常量值:0(0x00000000)

Public methods

add

Added in API level 1
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.

add

Added in API level 1
MenuItem add (int titleRes)

向菜单添加一个新项目。 此项目显示标签的给定标题。

Parameters
titleRes int: Resource identifier of title string.
Returns
MenuItem The newly added menu item.

add

Added in API level 1
MenuItem add (CharSequence title)

向菜单添加一个新项目。 此项目显示标签的给定标题。

Parameters
title CharSequence: The text to display for the item.
Returns
MenuItem The newly added menu item.

add

Added in API level 1
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.

addIntentOptions

Added in API level 1
int addIntentOptions (int groupId, 
                int itemId, 
                int order, 
                ComponentName caller, 
                Intent[] specifics, 
                Intent intent, 
                int flags, 
                MenuItem[] outSpecificItems)

添加一组对应于可针对特定意图执行的操作的菜单项。 意图通常配置为空操作,即当前活动正在处理的数据,并且包含CATEGORY_ALTERNATIVECATEGORY_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.

也可以看看:

addSubMenu

Added in API level 1
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

addSubMenu

Added in API level 1
SubMenu addSubMenu (int titleRes)

在菜单中添加一个新的子菜单。 此项目显示标签的给定标题。 要修改子菜单菜单项上的其他属性,请使用getItem()

Parameters
titleRes int: Resource identifier of title string.
Returns
SubMenu The newly added sub-menu

addSubMenu

Added in API level 1
SubMenu addSubMenu (CharSequence title)

在菜单中添加一个新的子菜单。 此项目显示标签的给定标题。 要修改子菜单菜单项上的其他属性,请使用getItem()

Parameters
title CharSequence: The text to display for the item.
Returns
SubMenu The newly added sub-menu

addSubMenu

Added in API level 1
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

clear

Added in API level 1
void clear ()

从菜单中删除所有现有的项目,并将其保留为空,就像刚刚创建的项目一样。

close

Added in API level 3
void close ()

如果打开,关闭菜单。

findItem

Added in API level 1
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.

getItem

Added in API level 3
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()

hasVisibleItems

Added in API level 1
boolean hasVisibleItems ()

返回菜单当前是否有可见的项目项目。

Returns
boolean True if there is one or more item visible, else false.

isShortcutKey

Added in API level 1
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

performIdentifierAction

Added in API level 1
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.

也可以看看:

performShortcut

Added in API level 1
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.

也可以看看:

removeGroup

Added in API level 1
void removeGroup (int groupId)

删除给定组中的所有项目。

Parameters
groupId int: The group to be removed. If there are no items in this group, nothing happens.

removeItem

Added in API level 1
void removeItem (int id)

删除具有给定标识符的项目。

Parameters
id int: The item to be removed. If there is no item with this identifier, nothing happens.

setGroupCheckable

Added in API level 1
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.

也可以看看:

setGroupEnabled

Added in API level 1
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.

也可以看看:

setGroupVisible

Added in API level 1
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.

也可以看看:

setQwertyMode

Added in API level 1
void setQwertyMode (boolean isQwerty)

控制菜单是否应以qwerty模式(字母快捷键)或12键模式(数字快捷键)运行。

Parameters
isQwerty boolean: If true the menu will use alphabetic shortcuts; else it will use numeric shortcuts.

size

Added in API level 1
int size ()

获取菜单中的项目数量。 请注意,这将随时更改项目添加或删除菜单。

Returns
int The item count.

Hooray!