# Titanium.Android.MenuItem

The Titanium binding of an Android menu item.

Availability
1.5

# Overview

As of Release 3.3.0, the Menu and MenuItem APIs are used to create action items for the action bar. Prior to Release 3.3.0, the APIs could also be used to customize the Options Menu.

In JavaScript, use the Menu's Titanium.Android.Menu.add method to create new action items.

In Alloy you can define <MenuItem> elements inside a <Menu> element.

<Menu id="menu" platform="android">
    <MenuItem id="saveitem" title="Save" icon="item1.png" onClick="doSave" />
    <MenuItem id="closeitem" title="Close" icon="item1.png" onClick="doClose" />
</Menu>

Action items can appear in either the action bar or the action bar's overflow menu. To determine how an action item is displayed, set Titanium.Android.MenuItem.showAsAction.

You can optionally customize the look of action items using the Titanium.Android.MenuItem.actionView property.

See the Titanium.Android.Menu reference page for additional code examples.

Further Reading:

# Properties

# accessibilityHint

Availability
8.3.0
accessibilityHint :String

Briefly describes what performing an action (such as a click) on the view will do.

Value of this property is concatenated together with accessibilityLabel and accessibilityValue in the order: accessibilityLabel, accessibilityValue, accessibilityHint. The concatenated value is then passed as the argument to the native MenuItemCompat.setContentDescription method.

Default: null


# accessibilityLabel

Availability
8.3.0
accessibilityLabel :String

A succint label identifying the view for the device's accessibility service.

Value of this property is concatenated together with accessibilityValue and accessibilityHint in the order: accessibilityLabel, accessibilityValue, accessibilityHint. The concatenated value is then passed as the argument to the native MenuItemCompat.setContentDescription method.

Default: null


# accessibilityValue

Availability
8.3.0
accessibilityValue :String

A string describing the value (if any) of the view for the device's accessibility service.

Value of this property is concatenated together with accessibilityLabel and accessibilityHint in the order: accessibilityLabel, accessibilityValue, accessibilityHint. The concatenated value is then passed as the argument to the native MenuItemCompat.setContentDescription method.

Default: null


# actionView

Availability
3.0.0
actionView :Titanium.UI.View

Custom view that replaces the default menu item button.

This is an action-bar specific API. Prior to Release 3.3.0, this API only works on devices running Android 3.0 (API level 11) and greater.

In order to display the custom view, set the item's showAsAction property to either Titanium.Android.SHOW_AS_ACTION_ALWAYS or Titanium.Android.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW.

Since Alloy 1.6.0, you can specify this property using the <ActionView> element as a child of the <MenuItem> element, for example:

<Alloy>
    <Window>
        <Menu>
            <MenuItem showAsAction="Ti.Android.SHOW_AS_ACTION_ALWAYS" title="Search">
                <ActionView>
                    <SearchView ns="Ti.UI.Android" hintText="Type Something"/>
                </ActionView>
            </MenuItem>
        </Menu>
    </Window>
</Alloy>

# actionViewExpanded READONLY

Availability
3.0.0
actionViewExpanded :Boolean

True if this menu item's action view has been expanded.

This is an action-bar specific API. Prior to Release 3.3.0, this API only works on devices running Android 4.0 (API level 14) and greater.


# checkable

Availability
1.5
checkable :Boolean

Determines if the item can be checked.

Note that check marks are not supported in the icon menus (main options menu shown when fewer than six options are included). Check marks are discouraged in expanded menus (available when six or more options menu items are defined).

Default: false


# checked

Availability
1.5
checked :Boolean

Determines if the item is checked.

Note that check marks are not supported in the icon menus (main options menu shown when fewer than six options are included). Check marks are discouraged in expanded menus (available when six or more options menu items are defined).

Default: false


# enabled

Availability
1.5
enabled :Boolean

Determines if the item is enabled.

Default: true


# groupId READONLYCREATION ONLY

Availability
1.5
groupId :Number

Group ID for this item.

Items that share a group ID may be operated on as a group using the menu's setGroupEnabled and setGroupVisible methods.


# icon

Availability
1.5
icon :Number | String

Icon to display for the this menu item.

Icons are not displayed in expanded menus.

Icons can be specified as a local image URI or an Android resource ID.


# itemId READONLYCREATION ONLY

Availability
1.5
itemId :Number

Item ID for this item.


# order READONLYCREATION ONLY

Availability
1.5
order :Number

Integer used for controlling the category and sort order for menu items.

The lower bits of this value control the order of the menu item related to other menu items within its category. A menu item with a given value will be displayed before any items with higher values.

The upper bits of the value control the category. These can be set to the values defined by the CATEGORY constants in the Android Menu class, These values are not exposed as constants in Titanium.

See also:

  • getOrder in the Android Developer Reference.

  • Menu in the Android Developer Reference for definitions of the CATEGORY values.


# showAsAction

Availability
3.0.0
showAsAction :Number

A set of flags that controls how this item appears in the action bar.

This is an action-bar specific API. Prior to Release 3.3.0, this property only works on devices running Android 3.0 (API level 11) and greater.

You may set one or more flags (by OR'ing them together) to control how this menu item should be placed inside the action bar.

To control if your item should be displayed as an action button or placed in the overflow menu set one of these flags: SHOW_AS_ACTION_ALWAYS, SHOW_AS_ACTION_IF_ROOM, or SHOW_AS_ACTION_NEVER.

If you only wish to display the text label even if the item has an icon set the SHOW_AS_ACTION_WITH_TEXT flag. Note that the SHOW_AS_ACTION_WITH_TEXT setting is only a hint to the system -- the text may or may not be shown depending on the width of the screen. For example, text may not be shown on phones in portrait mode. In addition if the application can be displayed in both portrait and landscape mode, whether or not the text is displayed depends on the device's orientation when the application launches. (This is true of both Titanium applications and native Android applications.) For this reason, using SHOW_AS_ACTION_WITH_TEXT is not recommended for applications that support both orientions.

If you want to guarantee that text and icon are always visible, you can create a button with the text and image, and specify it as the item's actionView.

You may specify if your action view is collapsible by setting this property to SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW.

For a collapsible item, the item button (icon and/or text) is displayed when the item is collapsed, and the action view is displayed when the item is expanded.

If SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW is not specified, any actionView specified is displayed instead of the item's icon and/or text.


# title

Availability
1.5
title :String

Title of the item.


# titleCondensed

Availability
1.5
titleCondensed :String

Shortened version of the item's title.

If both title and titleCondensed are specified, titleCondensed is used in the icon menus, and the title is used in the extended menus.


# visible

Availability
1.5
visible :Boolean

Determines whether the menu item is visible.

Default: true

# Methods

# collapseActionView

Availability
3.0.0
collapseActionView() void

Collapse the action view associated with this menu item.

This is an action-bar specific API. Prior to Release 3.3.0, this API only works on devices running Android 4.0 (API level 14) and greater.

Returns

Type
void

# expandActionView

Availability
3.0.0
expandActionView() void

Expand the action view associated with this menu item.

This is an action-bar specific API. Prior to Release 3.3.0, this API only works on devices running Android 3.0 (API level 11) and greater.

Returns

Type
void

# isActionViewExpanded DEPRECATED

Availability
1.5
isActionViewExpanded() Boolean

DEPRECATED SINCE 10.0.0

Use the actionViewExpanded property instead.

Returns the actionViewExpanded state of the menu item.

This is an action-bar specific API. Prior to Release 3.3.0, this API only works on devices running Android 4.0 (API level 14) and greater.

Returns

Type
Boolean

# isCheckable DEPRECATED

Availability
1.5
isCheckable() Boolean

DEPRECATED SINCE 10.0.0

Use the checkable property instead.

Returns the checkable state of the menu item.

Returns

Type
Boolean

# isChecked DEPRECATED

Availability
1.5
isChecked() Boolean

DEPRECATED SINCE 10.0.0

Use the checked property instead.

Returns the checked state of the menu item.

Returns

Type
Boolean

# isEnabled DEPRECATED

Availability
1.5
isEnabled() Boolean

DEPRECATED SINCE 10.0.0

Use the enabled property instead.

Returns the enabled state of the menu item.

Returns

Type
Boolean

# isVisible DEPRECATED

Availability
1.5
isVisible() Boolean

DEPRECATED SINCE 10.0.0

Use the visible property instead.

Returns the visible state of the menu item.

Returns

Type
Boolean

# setCheckable DEPRECATED

Availability
1.5
setCheckable(checkable) void

DEPRECATED SINCE 10.0.0

Use the checkable property instead.

Sets the checkable state of the menu item.

Parameters

Name Type Description
checkable Boolean

True enable checking and unchecking this item, false to disable it.

Returns

Type
void

# setChecked DEPRECATED

Availability
1.5
setChecked(enabled) void

DEPRECATED SINCE 10.0.0

Use the checked property instead.

Sets the checked state of the menu item.

Parameters

Name Type Description
enabled Boolean

True to check the item, false to uncheck it.

Returns

Type
void

# setEnabled DEPRECATED

Availability
1.5
setEnabled(enabled) void

DEPRECATED SINCE 10.0.0

Use the enabled property instead.

Sets the enabled state of the menu item.

Parameters

Name Type Description
enabled Boolean

True to enable item, false to disable it.

Returns

Type
void

# setVisible DEPRECATED

Availability
1.5
setVisible(visible) void

DEPRECATED SINCE 10.0.0

Use the visible property instead.

Sets the visible state of the menu item.

Parameters

Name Type Description
visible Boolean

True to show the item, false to hide it.

Returns

Type
void

# Events

# click

Availability
1.5

Fired when the user clicks the menu item.


# expand

Availability
3.0.0

Fired when the action view has been expanded.

This is an action-bar specific API. Prior to Release 3.3.0, this API only works on devices running Android 4.0 (API level 14) and greater.


# collapse

Availability
3.0.0

Fired when the action view has been collapsed.

This is an action-bar specific API. Prior to Release 3.3.0, this API only works on devices running Android 4.0 (API level 14) and greater.