Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (C) 2008 The Android Open Source Project
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package com.actionbarsherlock.view;
 
Interface for direct access to a previously created menu item.

An Item is returned by calling one of the android.view.Menu.add(java.lang.CharSequence) methods.

For a feature set of specific menu types, see Menu.

Developer Guides

For information about creating menus, read the Menus developer guide.

 
 public interface MenuItem {
     /*
      * These should be kept in sync with attrs.xml enum constants for showAsAction
      */
    
Never show this item as a button in an Action Bar.
 
     public static final int SHOW_AS_ACTION_NEVER = ...;
    
Show this item as a button in an Action Bar if the system decides there is room for it.
 
     public static final int SHOW_AS_ACTION_IF_ROOM = ...;
    
Always show this item as a button in an Action Bar. Use sparingly! If too many items are set to always show in the Action Bar it can crowd the Action Bar and degrade the user experience on devices with smaller screens. A good rule of thumb is to have no more than 2 items set to always show at a time.
 
     public static final int SHOW_AS_ACTION_ALWAYS = ...;

    
When this item is in the action bar, always show it with a text label even if it also has an icon specified.
 
     public static final int SHOW_AS_ACTION_WITH_TEXT = ...;

    
This item's action view collapses to a normal menu item. When expanded, the action view temporarily takes over a larger segment of its container.
 
Interface definition for a callback to be invoked when a menu item is clicked.

See also:
Activity#onContextItemSelected(MenuItem )
Activity#onOptionsItemSelected(MenuItem )
 
     public interface OnMenuItemClickListener {
        
Called when a menu item has been invoked. This is the first code that is executed; if it returns true, no other callbacks will be executed.

Parameters:
item The menu item that was invoked.
Returns:
Return true to consume this click and prevent others from executing.
 
         public boolean onMenuItemClick(MenuItem item);
     }

    
Interface definition for a callback to be invoked when a menu item marked with MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW is expanded or collapsed.

 
     public interface OnActionExpandListener {
        
Called when a menu item with MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW is expanded.

Parameters:
item Item that was expanded
Returns:
true if the item should expand, false if expansion should be suppressed.
        public boolean onMenuItemActionExpand(MenuItem item);

        
Called when a menu item with MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW is collapsed.

Parameters:
item Item that was collapsed
Returns:
true if the item should collapse, false if collapsing should be suppressed.
        public boolean onMenuItemActionCollapse(MenuItem item);
    }

    
Return the identifier for this menu item. The identifier can not be changed after the menu is created.

Returns:
The menu item's identifier.
    public int getItemId();

    
Return the group identifier that this menu item is part of. The group identifier can not be changed after the menu is created.

Returns:
The menu item's group identifier.
    public int getGroupId();

    
Return the category and order within the category of this item. This item will be shown before all items (within its category) that have order greater than this value.

An order integer contains the item's category (the upper bits of the integer; set by or/add the category with the order within the category) and the ordering of the item within that category (the lower bits). Example categories are Menu.CATEGORY_SYSTEM, Menu.CATEGORY_SECONDARY, Menu.CATEGORY_ALTERNATIVE, Menu.CATEGORY_CONTAINER. See Menu for a full list.

Returns:
The order of this item.
    public int getOrder();

    
Change the title associated with this item.

Parameters:
title The new text to be displayed.
Returns:
This Item so additional setters can be called.
    public MenuItem setTitle(CharSequence title);

    
Change the title associated with this item.

Some menu types do not sufficient space to show the full title, and instead a condensed title is preferred. See Menu for more information.

Parameters:
title The resource id of the new text to be displayed.
Returns:
This Item so additional setters can be called.
See also:
setTitleCondensed(java.lang.CharSequence)
    public MenuItem setTitle(int title);

    
Retrieve the current title of the item.

Returns:
The title.
    public CharSequence getTitle();

    
Change the condensed title associated with this item. The condensed title is used in situations where the normal title may be too long to be displayed.

Parameters:
title The new text to be displayed as the condensed title.
Returns:
This Item so additional setters can be called.
    public MenuItem setTitleCondensed(CharSequence title);

    
Retrieve the current condensed title of the item. If a condensed title was never set, it will return the normal title.

Returns:
The condensed title, if it exists. Otherwise the normal title.
    public CharSequence getTitleCondensed();

    
Change the icon associated with this item. This icon will not always be shown, so the title should be sufficient in describing this item. See Menu for the menu types that support icons.

Parameters:
icon The new icon (as a Drawable) to be displayed.
Returns:
This Item so additional setters can be called.
    public MenuItem setIcon(Drawable icon);

    
Change the icon associated with this item. This icon will not always be shown, so the title should be sufficient in describing this item. See Menu for the menu types that support icons.

This method will set the resource ID of the icon which will be used to lazily get the Drawable when this item is being shown.

Parameters:
iconRes The new icon (as a resource ID) to be displayed.
Returns:
This Item so additional setters can be called.
    public MenuItem setIcon(int iconRes);

    
Returns the icon for this item as a Drawable (getting it from resources if it hasn't been loaded before).

Returns:
The icon as a Drawable.
    public Drawable getIcon();

    
Change the Intent associated with this item. By default there is no Intent associated with a menu item. If you set one, and nothing else handles the item, then the default behavior will be to call android.content.Context.startActivity(android.content.Intent) with the given Intent.

Note that setIntent() can not be used with the versions of Menu.add(java.lang.CharSequence) that take a Runnable, because java.lang.Runnable.run() does not return a value so there is no way to tell if it handled the item. In this case it is assumed that the Runnable always handles the item, and the intent will never be started.

Parameters:
intent The Intent to associated with the item. This Intent object is not copied, so be careful not to modify it later.
Returns:
This Item so additional setters can be called.
See also:
getIntent()
    public MenuItem setIntent(Intent intent);

    
Return the Intent associated with this item. This returns a reference to the Intent which you can change as desired to modify what the Item is holding.

Returns:
Returns the last value supplied to setIntent(android.content.Intent), or null.
See also:
setIntent(android.content.Intent)
    public Intent getIntent();

    
Change both the numeric and alphabetic shortcut associated with this item. Note that the shortcut will be triggered when the key that generates the given character is pressed alone or along with with the alt key. Also note that case is not significant and that alphabetic shortcut characters will be displayed in lower case.

See Menu for the menu types that support shortcuts.

Parameters:
numericChar The numeric shortcut key. This is the shortcut when using a numeric (e.g., 12-key) keyboard.
alphaChar The alphabetic shortcut key. This is the shortcut when using a keyboard with alphabetic keys.
Returns:
This Item so additional setters can be called.
    public MenuItem setShortcut(char numericCharchar alphaChar);

    
Change the numeric shortcut associated with this item.

See Menu for the menu types that support shortcuts.

Parameters:
numericChar The numeric shortcut key. This is the shortcut when using a 12-key (numeric) keyboard.
Returns:
This Item so additional setters can be called.
    public MenuItem setNumericShortcut(char numericChar);

    
Return the char for this menu item's numeric (12-key) shortcut.

Returns:
Numeric character to use as a shortcut.
    public char getNumericShortcut();

    
Change the alphabetic shortcut associated with this item. The shortcut will be triggered when the key that generates the given character is pressed alone or along with with the alt key. Case is not significant and shortcut characters will be displayed in lower case. Note that menu items with the characters '\b' or '\n' as shortcuts will get triggered by the Delete key or Carriage Return key, respectively.

See Menu for the menu types that support shortcuts.

Parameters:
alphaChar The alphabetic shortcut key. This is the shortcut when using a keyboard with alphabetic keys.
Returns:
This Item so additional setters can be called.
    public MenuItem setAlphabeticShortcut(char alphaChar);

    
Return the char for this menu item's alphabetic shortcut.

Returns:
Alphabetic character to use as a shortcut.
    public char getAlphabeticShortcut();

    
Control whether this item can display a check mark. Setting this does not actually display a check mark (see setChecked(boolean) for that); rather, it ensures there is room in the item in which to display a check mark.

See Menu for the menu types that support check marks.

Parameters:
checkable Set to true to allow a check mark, false to disallow. The default is false.
Returns:
This Item so additional setters can be called.
See also:
setChecked(boolean)
isCheckable()
Menu.setGroupCheckable(int,boolean,boolean)
    public MenuItem setCheckable(boolean checkable);

    
Return whether the item can currently display a check mark.

Returns:
If a check mark can be displayed, returns true.
See also:
setCheckable(boolean)
    public boolean isCheckable();

    
Control whether this item is shown with a check mark. Note that you must first have enabled checking with setCheckable(boolean) or else the check mark will not appear. If this item is a member of a group that contains mutually-exclusive items (set via Menu.setGroupCheckable(int,boolean,boolean), the other items in the group will be unchecked.

See Menu for the menu types that support check marks.

Parameters:
checked Set to true to display a check mark, false to hide it. The default value is false.
Returns:
This Item so additional setters can be called.
See also:
setCheckable(boolean)
isChecked()
Menu.setGroupCheckable(int,boolean,boolean)
    public MenuItem setChecked(boolean checked);

    
Return whether the item is currently displaying a check mark.

Returns:
If a check mark is displayed, returns true.
See also:
setChecked(boolean)
    public boolean isChecked();

    
Sets the visibility of the menu item. Even if a menu item is not visible, it may still be invoked via its shortcut (to completely disable an item, set it to invisible and disabled).

Parameters:
visible If true then the item will be visible; if false it is hidden.
Returns:
This Item so additional setters can be called.
    public MenuItem setVisible(boolean visible);

    
Return the visibility of the menu item.

Returns:
If true the item is visible; else it is hidden.
    public boolean isVisible();

    
Sets whether the menu item is enabled. Disabling a menu item will not allow it to be invoked via its shortcut. The menu item will still be visible.

Parameters:
enabled If true then the item will be invokable; if false it is won't be invokable.
Returns:
This Item so additional setters can be called.
    public MenuItem setEnabled(boolean enabled);

    
Return the enabled state of the menu item.

Returns:
If true the item is enabled and hence invokable; else it is not.
    public boolean isEnabled();

    
Check whether this item has an associated sub-menu. I.e. it is a sub-menu of another menu.

Returns:
If true this item has a menu; else it is a normal item.
    public boolean hasSubMenu();

    
Get the sub-menu to be invoked when this item is selected, if it has one. See hasSubMenu().

Returns:
The associated menu if there is one, else null
    public SubMenu getSubMenu();

    
Set a custom listener for invocation of this menu item. In most situations, it is more efficient and easier to use Activity#onOptionsItemSelected(MenuItem ) or Activity#onContextItemSelected(MenuItem ).

Parameters:
menuItemClickListener The object to receive invokations.
Returns:
This Item so additional setters can be called.
See also:
Activity#onOptionsItemSelected(MenuItem )
Activity#onContextItemSelected(MenuItem )
    public MenuItem setOnMenuItemClickListener(MenuItem.OnMenuItemClickListener menuItemClickListener);

    
Gets the extra information linked to this menu item. This extra information is set by the View that added this menu item to the menu.

Returns:
The extra information linked to the View that added this menu item to the menu. This can be null.
See also:
OnCreateContextMenuListener
    public ContextMenuInfo getMenuInfo();

    
Sets how this item should display in the presence of an Action Bar. The parameter actionEnum is a flag set. One of SHOW_AS_ACTION_ALWAYS, SHOW_AS_ACTION_IF_ROOM, or SHOW_AS_ACTION_NEVER should be used, and you may optionally OR the value with SHOW_AS_ACTION_WITH_TEXT. SHOW_AS_ACTION_WITH_TEXT requests that when the item is shown as an action, it should be shown with a text label.

Parameters:
actionEnum How the item should display. One of SHOW_AS_ACTION_ALWAYS, SHOW_AS_ACTION_IF_ROOM, or SHOW_AS_ACTION_NEVER. SHOW_AS_ACTION_NEVER is the default.
See also:
android.app.ActionBar
setActionView(android.view.View)
    public void setShowAsAction(int actionEnum);

    
Sets how this item should display in the presence of an Action Bar. The parameter actionEnum is a flag set. One of SHOW_AS_ACTION_ALWAYS, SHOW_AS_ACTION_IF_ROOM, or SHOW_AS_ACTION_NEVER should be used, and you may optionally OR the value with SHOW_AS_ACTION_WITH_TEXT. SHOW_AS_ACTION_WITH_TEXT requests that when the item is shown as an action, it should be shown with a text label.

Note: This method differs from setShowAsAction(int) only in that it returns the current MenuItem instance for call chaining.

Parameters:
actionEnum How the item should display. One of SHOW_AS_ACTION_ALWAYS, SHOW_AS_ACTION_IF_ROOM, or SHOW_AS_ACTION_NEVER. SHOW_AS_ACTION_NEVER is the default.
Returns:
This MenuItem instance for call chaining.
See also:
android.app.ActionBar
setActionView(android.view.View)
    public MenuItem setShowAsActionFlags(int actionEnum);

    
Set an action view for this menu item. An action view will be displayed in place of an automatically generated menu item element in the UI when this item is shown as an action within a parent.

Note: Setting an action view overrides the action provider set via setActionProvider(com.actionbarsherlock.view.ActionProvider).

Parameters:
view View to use for presenting this item to the user.
Returns:
This Item so additional setters can be called.
See also:
setShowAsAction(int)
    public MenuItem setActionView(View view);

    
Set an action view for this menu item. An action view will be displayed in place of an automatically generated menu item element in the UI when this item is shown as an action within a parent.

Note: Setting an action view overrides the action provider set via setActionProvider(com.actionbarsherlock.view.ActionProvider).

Parameters:
resId Layout resource to use for presenting this item to the user.
Returns:
This Item so additional setters can be called.
See also:
setShowAsAction(int)
    public MenuItem setActionView(int resId);

    
Returns the currently set action view for this menu item.

Returns:
This item's action view
See also:
setActionView(android.view.View)
setShowAsAction(int)
    public View getActionView();

    
Sets the ActionProvider responsible for creating an action view if the item is placed on the action bar. The provider also provides a default action invoked if the item is placed in the overflow menu.

Note: Setting an action provider overrides the action view set via setActionView(int) or setActionView(android.view.View).

Parameters:
actionProvider The action provider.
Returns:
This Item so additional setters can be called.
See also:
ActionProvider
    public MenuItem setActionProvider(ActionProvider actionProvider);

    
    public ActionProvider getActionProvider();

    
Expand the action view associated with this menu item. The menu item must have an action view set, as well as the showAsAction flag SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW. If a listener has been set using setOnActionExpandListener(com.actionbarsherlock.view.MenuItem.OnActionExpandListener) it will have its MenuItem.OnActionExpandListener.onMenuItemActionExpand(com.actionbarsherlock.view.MenuItem) method invoked. The listener may return false from this method to prevent expanding the action view.

Returns:
true if the action view was expanded, false otherwise.
    public boolean expandActionView();

    
Collapse the action view associated with this menu item. The menu item must have an action view set, as well as the showAsAction flag SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW. If a listener has been set using setOnActionExpandListener(com.actionbarsherlock.view.MenuItem.OnActionExpandListener) it will have its MenuItem.OnActionExpandListener.onMenuItemActionCollapse(com.actionbarsherlock.view.MenuItem) method invoked. The listener may return false from this method to prevent collapsing the action view.

Returns:
true if the action view was collapsed, false otherwise.
    public boolean collapseActionView();

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

Returns:
true if the item's action view is expanded, false otherwise.
See also:
expandActionView()
collapseActionView()
SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW
MenuItem.OnActionExpandListener
    public boolean isActionViewExpanded();

    
Set an MenuItem.OnActionExpandListener on this menu item to be notified when the associated action view is expanded or collapsed. The menu item must be configured to expand or collapse its action view using the flag SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW.

Parameters:
listener Listener that will respond to expand/collapse events
Returns:
This menu item instance for call chaining
New to GrepCode? Check out our FAQ X