Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Nested Classes](https://developer.android.com/reference/android/view/ContextMenu#nestedclasses) \| [Inherited Constants](https://developer.android.com/reference/android/view/ContextMenu#inhconstants) \| [Methods](https://developer.android.com/reference/android/view/ContextMenu#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/view/ContextMenu#inhmethods)

# ContextMenu

*** ** * ** ***

` public interface ContextMenu `   
` implements https://developer.android.com/reference/android/view/Menu `

|---|
| android.view.ContextMenu |

<br />

*** ** * ** ***

Extension of `https://developer.android.com/reference/android/view/Menu` for context menus providing functionality to modify the header of the context menu.

Context menus do not support item shortcuts and item icons.

To show a context menu on long click, most clients will want to call `https://developer.android.com/reference/android/app/Activity#registerForContextMenu(android.view.View)` and override `https://developer.android.com/reference/android/app/Activity#onCreateContextMenu(android.view.ContextMenu,%20android.view.View,%20android.view.ContextMenu.ContextMenuInfo)`.

### Developer Guides

For information about creating menus, read the [Menus](https://developer.android.com/guide/topics/ui/menus) developer guide.

<br />

## Summary

| ### Nested classes ||
|---|---|
| ` interface` | `https://developer.android.com/reference/android/view/ContextMenu.ContextMenuInfo` Additional information regarding the creation of the context menu. |

### Inherited constants

From interface `https://developer.android.com/reference/android/view/Menu` `int` `https://developer.android.com/reference/android/view/Menu#CATEGORY_ALTERNATIVE`

Category code for the order integer for items/groups that are alternative actions on the data that is currently displayed -- or/add this with your base value.
`int` `https://developer.android.com/reference/android/view/Menu#CATEGORY_CONTAINER`

Category code for the order integer for items/groups that are part of a container -- or/add this with your base value.
`int` `https://developer.android.com/reference/android/view/Menu#CATEGORY_SECONDARY`

Category code for the order integer for items/groups that are user-supplied secondary (infrequently used) options -- or/add this with your base value.
`int` `https://developer.android.com/reference/android/view/Menu#CATEGORY_SYSTEM`

Category code for the order integer for items/groups that are provided by the system -- or/add this with your base value.
`int` `https://developer.android.com/reference/android/view/Menu#FIRST`

First value for group and item identifier integers.
`int` `https://developer.android.com/reference/android/view/Menu#FLAG_ALWAYS_PERFORM_CLOSE`

Flag for `https://developer.android.com/reference/android/view/Menu#performShortcut(int,%20android.view.KeyEvent,%20int)`: if set, always close the menu after executing the shortcut.
`int` `https://developer.android.com/reference/android/view/Menu#FLAG_APPEND_TO_GROUP`

Flag for `https://developer.android.com/reference/android/view/Menu#addIntentOptions(int,%20int,%20int,%20android.content.ComponentName,%20android.content.Intent[],%20android.content.Intent,%20int,%20android.view.MenuItem[])`: if set, do not automatically remove any existing menu items in the same group.
`int` `https://developer.android.com/reference/android/view/Menu#FLAG_PERFORM_NO_CLOSE`

Flag for `https://developer.android.com/reference/android/view/Menu#performShortcut(int,%20android.view.KeyEvent,%20int)`: if set, do not close the menu after executing the shortcut.
`int` `https://developer.android.com/reference/android/view/Menu#NONE`

Value to use for group and item identifier integers when you don't care about them.
`int` `https://developer.android.com/reference/android/view/Menu#SUPPORTED_MODIFIERS_MASK`

A mask of all supported modifiers for MenuItem's keyboard shortcuts

| ### Public methods ||
|---|---|
| ` abstract void` | ` https://developer.android.com/reference/android/view/ContextMenu#clearHeader()() ` Clears the header of the context menu. |
| ` abstract https://developer.android.com/reference/android/view/ContextMenu` | ` https://developer.android.com/reference/android/view/ContextMenu#setHeaderIcon(int)(int iconRes) ` Sets the context menu header's icon to the icon given in <var translate="no">iconRes</var> resource id. |
| ` abstract https://developer.android.com/reference/android/view/ContextMenu` | ` https://developer.android.com/reference/android/view/ContextMenu#setHeaderIcon(android.graphics.drawable.Drawable)(https://developer.android.com/reference/android/graphics/drawable/Drawable icon) ` Sets the context menu header's icon to the icon given in <var translate="no">icon</var> `https://developer.android.com/reference/android/graphics/drawable/Drawable`. |
| ` abstract https://developer.android.com/reference/android/view/ContextMenu` | ` https://developer.android.com/reference/android/view/ContextMenu#setHeaderTitle(int)(int titleRes) ` Sets the context menu header's title to the title given in <var translate="no">titleRes</var> resource identifier. |
| ` abstract https://developer.android.com/reference/android/view/ContextMenu` | ` https://developer.android.com/reference/android/view/ContextMenu#setHeaderTitle(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence title) ` Sets the context menu header's title to the title given in <var translate="no">title</var>. |
| ` abstract https://developer.android.com/reference/android/view/ContextMenu` | ` https://developer.android.com/reference/android/view/ContextMenu#setHeaderView(android.view.View)(https://developer.android.com/reference/android/view/View view) ` Sets the header of the context menu to the `https://developer.android.com/reference/android/view/View` given in <var translate="no">view</var>. |

### Inherited methods

From interface ` https://developer.android.com/reference/android/view/Menu ` ` abstract https://developer.android.com/reference/android/view/MenuItem` ` https://developer.android.com/reference/android/view/Menu#add(int,%20int,%20int,%20java.lang.CharSequence)(int groupId, int itemId, int order, https://developer.android.com/reference/java/lang/CharSequence title) `

Add a new item to the menu.
` abstract https://developer.android.com/reference/android/view/MenuItem` ` https://developer.android.com/reference/android/view/Menu#add(int)(int titleRes) `

Add a new item to the menu.
` abstract https://developer.android.com/reference/android/view/MenuItem` ` https://developer.android.com/reference/android/view/Menu#add(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence title) `

Add a new item to the menu.
` abstract https://developer.android.com/reference/android/view/MenuItem` ` https://developer.android.com/reference/android/view/Menu#add(int,%20int,%20int,%20int)(int groupId, int itemId, int order, int titleRes) `

Variation on `https://developer.android.com/reference/android/view/Menu#add(int,%20int,%20int,%20java.lang.CharSequence)` that takes a string resource identifier instead of the string itself.
` abstract int` ` https://developer.android.com/reference/android/view/Menu#addIntentOptions(int,%20int,%20int,%20android.content.ComponentName,%20android.content.Intent[],%20android.content.Intent,%20int,%20android.view.MenuItem[])(int groupId, int itemId, int order, https://developer.android.com/reference/android/content/ComponentName caller, https://developer.android.com/reference/android/content/Intent specifics, https://developer.android.com/reference/android/content/Intent intent, int flags, https://developer.android.com/reference/android/view/MenuItem outSpecificItems) `

Add a group of menu items corresponding to actions that can be performed for a particular Intent.
` abstract https://developer.android.com/reference/android/view/SubMenu` ` https://developer.android.com/reference/android/view/Menu#addSubMenu(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence title) `

Add a new sub-menu to the menu.
` abstract https://developer.android.com/reference/android/view/SubMenu` ` https://developer.android.com/reference/android/view/Menu#addSubMenu(int,%20int,%20int,%20int)(int groupId, int itemId, int order, int titleRes) `

Variation on `https://developer.android.com/reference/android/view/Menu#addSubMenu(int,%20int,%20int,%20java.lang.CharSequence)` that takes a string resource identifier for the title instead of the string itself.
` abstract https://developer.android.com/reference/android/view/SubMenu` ` https://developer.android.com/reference/android/view/Menu#addSubMenu(int,%20int,%20int,%20java.lang.CharSequence)(int groupId, int itemId, int order, https://developer.android.com/reference/java/lang/CharSequence title) `

Add a new sub-menu to the menu.
` abstract https://developer.android.com/reference/android/view/SubMenu` ` https://developer.android.com/reference/android/view/Menu#addSubMenu(int)(int titleRes) `

Add a new sub-menu to the menu.
` abstract void` ` https://developer.android.com/reference/android/view/Menu#clear()() `

Remove all existing items from the menu, leaving it empty as if it had just been created.
` abstract void` ` https://developer.android.com/reference/android/view/Menu#close()() `

Closes the menu, if open.
` abstract https://developer.android.com/reference/android/view/MenuItem` ` https://developer.android.com/reference/android/view/Menu#findItem(int)(int id) `

Return the menu item with a particular identifier.
` abstract https://developer.android.com/reference/android/view/MenuItem` ` https://developer.android.com/reference/android/view/Menu#getItem(int)(int index) `

Gets the menu item at the given index.
` abstract boolean` ` https://developer.android.com/reference/android/view/Menu#hasVisibleItems()() `

Return whether the menu currently has item items that are visible.
` abstract boolean` ` https://developer.android.com/reference/android/view/Menu#isShortcutKey(int,%20android.view.KeyEvent)(int keyCode, https://developer.android.com/reference/android/view/KeyEvent event) `

Is a keypress one of the defined shortcut keys for this window.
` abstract boolean` ` https://developer.android.com/reference/android/view/Menu#performIdentifierAction(int,%20int)(int id, int flags) `

Execute the menu item action associated with the given menu identifier.
` abstract boolean` ` https://developer.android.com/reference/android/view/Menu#performShortcut(int,%20android.view.KeyEvent,%20int)(int keyCode, https://developer.android.com/reference/android/view/KeyEvent event, int flags) `

Execute the menu item action associated with the given shortcut character.
` abstract void` ` https://developer.android.com/reference/android/view/Menu#removeGroup(int)(int groupId) `

Remove all items in the given group.
` abstract void` ` https://developer.android.com/reference/android/view/Menu#removeItem(int)(int id) `

Remove the item with the given identifier.
` abstract void` ` https://developer.android.com/reference/android/view/Menu#setGroupCheckable(int,%20boolean,%20boolean)(int group, boolean checkable, boolean exclusive) `

Control whether a particular group of items can show a check mark.
` default void` ` https://developer.android.com/reference/android/view/Menu#setGroupDividerEnabled(boolean)(boolean groupDividerEnabled) `

Enable or disable the group dividers.
` abstract void` ` https://developer.android.com/reference/android/view/Menu#setGroupEnabled(int,%20boolean)(int group, boolean enabled) `

Enable or disable all menu items that are in the given group.
` abstract void` ` https://developer.android.com/reference/android/view/Menu#setGroupVisible(int,%20boolean)(int group, boolean visible) `

Show or hide all menu items that are in the given group.
` abstract void` ` https://developer.android.com/reference/android/view/Menu#setQwertyMode(boolean)(boolean isQwerty) `

Control whether the menu should be running in qwerty mode (alphabetic shortcuts) or 12-key mode (numeric shortcuts).
` abstract int` ` https://developer.android.com/reference/android/view/Menu#size()() `

Get the number of items in the menu.

## Public methods

### clearHeader

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract void clearHeader ()
```

Clears the header of the context menu.

<br />

### setHeaderIcon

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract ContextMenu setHeaderIcon (int iconRes)
```

Sets the context menu header's icon to the icon given in <var translate="no">iconRes</var> resource id.

<br />

| Parameters ||
|---|---|
| `iconRes` | `int`: The resource identifier used for the icon. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/view/ContextMenu` | This ContextMenu so additional setters can be called. <br /> |

### setHeaderIcon

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract ContextMenu setHeaderIcon (Drawable icon)
```

Sets the context menu header's icon to the icon given in <var translate="no">icon</var> `https://developer.android.com/reference/android/graphics/drawable/Drawable`.

<br />

| Parameters ||
|---|---|
| `icon` | `Drawable`: The `https://developer.android.com/reference/android/graphics/drawable/Drawable` used for the icon. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/view/ContextMenu` | This ContextMenu so additional setters can be called. <br /> |

### setHeaderTitle

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract ContextMenu setHeaderTitle (int titleRes)
```

Sets the context menu header's title to the title given in <var translate="no">titleRes</var> resource identifier.

<br />

| Parameters ||
|---|---|
| `titleRes` | `int`: The string resource identifier used for the title. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/view/ContextMenu` | This ContextMenu so additional setters can be called. <br /> |

### setHeaderTitle

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract ContextMenu setHeaderTitle (CharSequence title)
```

Sets the context menu header's title to the title given in <var translate="no">title</var>.

<br />

| Parameters ||
|---|---|
| `title` | `CharSequence`: The character sequence used for the title. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/view/ContextMenu` | This ContextMenu so additional setters can be called. <br /> |

### setHeaderView

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract ContextMenu setHeaderView (View view)
```

Sets the header of the context menu to the `https://developer.android.com/reference/android/view/View` given in <var translate="no">view</var>. This replaces the header title and icon (and those replace this).

<br />

| Parameters ||
|---|---|
| `view` | `View`: The `https://developer.android.com/reference/android/view/View` used for the header. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/view/ContextMenu` | This ContextMenu so additional setters can be called. <br /> |