MenuItem.java revision 9c881f227b2a136193a0a9236100075363a76f68
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.view; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 197b9c912f536925ac6ec43935d6e97506851b33d6Tor Norbyeimport android.annotation.DrawableRes; 207b9c912f536925ac6ec43935d6e97506851b33d6Tor Norbyeimport android.annotation.LayoutRes; 216eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikovimport android.annotation.Nullable; 227b9c912f536925ac6ec43935d6e97506851b33d6Tor Norbyeimport android.annotation.StringRes; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.Activity; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Intent; 256eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikovimport android.content.res.ColorStateList; 266eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikovimport android.graphics.PorterDuff; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.graphics.drawable.Drawable; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.ContextMenu.ContextMenuInfo; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.View.OnCreateContextMenuListener; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Interface for direct access to a previously created menu item. 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * An Item is returned by calling one of the {@link android.view.Menu#add} 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * methods. 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * For a feature set of specific menu types, see {@link Menu}. 38558459fe85f56f29a6ed6a4d0adb4a0bd6665884Joe Fernandez * 39558459fe85f56f29a6ed6a4d0adb4a0bd6665884Joe Fernandez * <div class="special reference"> 40558459fe85f56f29a6ed6a4d0adb4a0bd6665884Joe Fernandez * <h3>Developer Guides</h3> 41558459fe85f56f29a6ed6a4d0adb4a0bd6665884Joe Fernandez * <p>For information about creating menus, read the 42558459fe85f56f29a6ed6a4d0adb4a0bd6665884Joe Fernandez * <a href="{@docRoot}guide/topics/ui/menus.html">Menus</a> developer guide.</p> 43558459fe85f56f29a6ed6a4d0adb4a0bd6665884Joe Fernandez * </div> 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic interface MenuItem { 4689e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell /* 4789e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell * These should be kept in sync with attrs.xml enum constants for showAsAction 4889e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell */ 4989e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell /** Never show this item as a button in an Action Bar. */ 5089e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell public static final int SHOW_AS_ACTION_NEVER = 0; 5189e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell /** Show this item as a button in an Action Bar if the system decides there is room for it. */ 5289e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell public static final int SHOW_AS_ACTION_IF_ROOM = 1; 5389e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell /** 5489e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell * Always show this item as a button in an Action Bar. 5589e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell * Use sparingly! If too many items are set to always show in the Action Bar it can 5689e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell * crowd the Action Bar and degrade the user experience on devices with smaller screens. 5789e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell * A good rule of thumb is to have no more than 2 items set to always show at a time. 5889e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell */ 5989e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell public static final int SHOW_AS_ACTION_ALWAYS = 2; 60d8404b23739b135060ab9a04317a9f8b990cf8caAdam Powell 61d8404b23739b135060ab9a04317a9f8b990cf8caAdam Powell /** 62d8404b23739b135060ab9a04317a9f8b990cf8caAdam Powell * When this item is in the action bar, always show it with a text label even if 63d8404b23739b135060ab9a04317a9f8b990cf8caAdam Powell * it also has an icon specified. 64d8404b23739b135060ab9a04317a9f8b990cf8caAdam Powell */ 65d8404b23739b135060ab9a04317a9f8b990cf8caAdam Powell public static final int SHOW_AS_ACTION_WITH_TEXT = 4; 668d02deabac62c4a68a335a7b3141795466362b89Adam Powell 678d02deabac62c4a68a335a7b3141795466362b89Adam Powell /** 688d02deabac62c4a68a335a7b3141795466362b89Adam Powell * This item's action view collapses to a normal menu item. 698d02deabac62c4a68a335a7b3141795466362b89Adam Powell * When expanded, the action view temporarily takes over 708d02deabac62c4a68a335a7b3141795466362b89Adam Powell * a larger segment of its container. 718d02deabac62c4a68a335a7b3141795466362b89Adam Powell */ 728d02deabac62c4a68a335a7b3141795466362b89Adam Powell public static final int SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8; 73484c2e2fbec02209337bb86fc99b8b253bc06f99Siyamed Sinir 74484c2e2fbec02209337bb86fc99b8b253bc06f99Siyamed Sinir /** 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Interface definition for a callback to be invoked when a menu item is 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * clicked. 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see Activity#onContextItemSelected(MenuItem) 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see Activity#onOptionsItemSelected(MenuItem) 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public interface OnMenuItemClickListener { 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Called when a menu item has been invoked. This is the first code 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * that is executed; if it returns true, no other callbacks will be 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * executed. 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param item The menu item that was invoked. 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Return true to consume this click and prevent others from 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * executing. 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean onMenuItemClick(MenuItem item); 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 968d02deabac62c4a68a335a7b3141795466362b89Adam Powell * Interface definition for a callback to be invoked when a menu item 978d02deabac62c4a68a335a7b3141795466362b89Adam Powell * marked with {@link MenuItem#SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW} is 988d02deabac62c4a68a335a7b3141795466362b89Adam Powell * expanded or collapsed. 998d02deabac62c4a68a335a7b3141795466362b89Adam Powell * 1008d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @see MenuItem#expandActionView() 1018d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @see MenuItem#collapseActionView() 1028d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @see MenuItem#setShowAsActionFlags(int) 1038d02deabac62c4a68a335a7b3141795466362b89Adam Powell */ 1048d02deabac62c4a68a335a7b3141795466362b89Adam Powell public interface OnActionExpandListener { 1058d02deabac62c4a68a335a7b3141795466362b89Adam Powell /** 1068d02deabac62c4a68a335a7b3141795466362b89Adam Powell * Called when a menu item with {@link MenuItem#SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW} 1078d02deabac62c4a68a335a7b3141795466362b89Adam Powell * is expanded. 1088d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @param item Item that was expanded 1098d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @return true if the item should expand, false if expansion should be suppressed. 1108d02deabac62c4a68a335a7b3141795466362b89Adam Powell */ 1118d02deabac62c4a68a335a7b3141795466362b89Adam Powell public boolean onMenuItemActionExpand(MenuItem item); 1128d02deabac62c4a68a335a7b3141795466362b89Adam Powell 1138d02deabac62c4a68a335a7b3141795466362b89Adam Powell /** 1148d02deabac62c4a68a335a7b3141795466362b89Adam Powell * Called when a menu item with {@link MenuItem#SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW} 1158d02deabac62c4a68a335a7b3141795466362b89Adam Powell * is collapsed. 1168d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @param item Item that was collapsed 1178d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @return true if the item should collapse, false if collapsing should be suppressed. 1188d02deabac62c4a68a335a7b3141795466362b89Adam Powell */ 1198d02deabac62c4a68a335a7b3141795466362b89Adam Powell public boolean onMenuItemActionCollapse(MenuItem item); 1208d02deabac62c4a68a335a7b3141795466362b89Adam Powell } 1218d02deabac62c4a68a335a7b3141795466362b89Adam Powell 1228d02deabac62c4a68a335a7b3141795466362b89Adam Powell /** 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return the identifier for this menu item. The identifier can not 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be changed after the menu is created. 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The menu item's identifier. 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getItemId(); 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return the group identifier that this menu item is part of. The group 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * identifier can not be changed after the menu is created. 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The menu item's group identifier. 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getGroupId(); 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return the category and order within the category of this item. This 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * item will be shown before all items (within its category) that have 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * order greater than this value. 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * An order integer contains the item's category (the upper bits of the 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * integer; set by or/add the category with the order within the 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * category) and the ordering of the item within that category (the 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * lower bits). Example categories are {@link Menu#CATEGORY_SYSTEM}, 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Menu#CATEGORY_SECONDARY}, {@link Menu#CATEGORY_ALTERNATIVE}, 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Menu#CATEGORY_CONTAINER}. See {@link Menu} for a full list. 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The order of this item. 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getOrder(); 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Change the title associated with this item. 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param title The new text to be displayed. 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return This Item so additional setters can be called. 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public MenuItem setTitle(CharSequence title); 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Change the title associated with this item. 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Some menu types do not sufficient space to show the full title, and 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * instead a condensed title is preferred. See {@link Menu} for more 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * information. 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param title The resource id of the new text to be displayed. 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return This Item so additional setters can be called. 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #setTitleCondensed(CharSequence) 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1747b9c912f536925ac6ec43935d6e97506851b33d6Tor Norbye public MenuItem setTitle(@StringRes int title); 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieve the current title of the item. 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The title. 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public CharSequence getTitle(); 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Change the condensed title associated with this item. The condensed 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * title is used in situations where the normal title may be too long to 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be displayed. 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param title The new text to be displayed as the condensed title. 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return This Item so additional setters can be called. 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public MenuItem setTitleCondensed(CharSequence title); 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieve the current condensed title of the item. If a condensed 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * title was never set, it will return the normal title. 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The condensed title, if it exists. 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Otherwise the normal title. 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public CharSequence getTitleCondensed(); 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Change the icon associated with this item. This icon will not always be 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * shown, so the title should be sufficient in describing this item. See 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Menu} for the menu types that support icons. 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param icon The new icon (as a Drawable) to be displayed. 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return This Item so additional setters can be called. 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public MenuItem setIcon(Drawable icon); 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Change the icon associated with this item. This icon will not always be 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * shown, so the title should be sufficient in describing this item. See 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Menu} for the menu types that support icons. 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This method will set the resource ID of the icon which will be used to 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * lazily get the Drawable when this item is being shown. 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param iconRes The new icon (as a resource ID) to be displayed. 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return This Item so additional setters can be called. 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2237b9c912f536925ac6ec43935d6e97506851b33d6Tor Norbye public MenuItem setIcon(@DrawableRes int iconRes); 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the icon for this item as a Drawable (getting it from resources if it hasn't been 2276eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * loaded before). Note that if you call {@link #setIconTintList(ColorStateList)} or 2286eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * {@link #setIconTintMode(PorterDuff.Mode)} on this item, and you use a custom menu presenter 2296eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * in your application, you have to apply the tinting explicitly on the {@link Drawable} 2306eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * returned by this method. 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The icon as a Drawable. 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Drawable getIcon(); 2356eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov 2366eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov /** 2376eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * Applies a tint to this item's icon. Does not modify the 2386eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * current tint mode, which is {@link PorterDuff.Mode#SRC_IN} by default. 2396eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * <p> 2406eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * Subsequent calls to {@link #setIcon(Drawable)} or {@link #setIcon(int)} will 2416eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * automatically mutate the icon and apply the specified tint and 2426eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * tint mode using 2436eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * {@link Drawable#setTintList(ColorStateList)}. 2446eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * 2456eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * @param tint the tint to apply, may be {@code null} to clear tint 2466eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * 2476eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * @attr ref android.R.styleable#MenuItem_iconTint 2486eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * @see #getIconTintList() 2496eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * @see Drawable#setTintList(ColorStateList) 2506eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov */ 2516eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov public default MenuItem setIconTintList(@Nullable ColorStateList tint) { return this; } 2526eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov 2536eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov /** 2546eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * @return the tint applied to this item's icon 2556eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * @attr ref android.R.styleable#MenuItem_iconTint 2566eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * @see #setIconTintList(ColorStateList) 2576eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov */ 2586eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov @Nullable 2596eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov public default ColorStateList getIconTintList() { return null; } 2606eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov 2616eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov /** 2626eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * Specifies the blending mode used to apply the tint specified by 2636eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * {@link #setIconTintList(ColorStateList)} to this item's icon. The default mode is 2646eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * {@link PorterDuff.Mode#SRC_IN}. 2656eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * 2666eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * @param tintMode the blending mode used to apply the tint, may be 2676eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * {@code null} to clear tint 2686eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * @attr ref android.R.styleable#MenuItem_iconTintMode 2696eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * @see #setIconTintList(ColorStateList) 2706eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * @see Drawable#setTintMode(PorterDuff.Mode) 2716eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov */ 2726eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov public default MenuItem setIconTintMode(@Nullable PorterDuff.Mode tintMode) { return this; } 2736eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov 2746eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov /** 2756eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * Returns the blending mode used to apply the tint to this item's icon, if specified. 2766eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * 2776eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * @return the blending mode used to apply the tint to this item's icon 2786eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * @attr ref android.R.styleable#MenuItem_iconTintMode 2796eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov * @see #setIconTintMode(PorterDuff.Mode) 2806eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov */ 2816eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov @Nullable 2826eea0d2a4ce20c9709d2cc9c24c823f7ef795c0aKirill Grouchnikov public default PorterDuff.Mode getIconTintMode() { return null; } 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Change the Intent associated with this item. By default there is no 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Intent associated with a menu item. If you set one, and nothing 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * else handles the item, then the default behavior will be to call 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.content.Context#startActivity} with the given Intent. 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Note that setIntent() can not be used with the versions of 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Menu#add} that take a Runnable, because {@link Runnable#run} 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * does not return a value so there is no way to tell if it handled the 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * item. In this case it is assumed that the Runnable always handles 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the item, and the intent will never be started. 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getIntent 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param intent The Intent to associated with the item. This Intent 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * object is <em>not</em> copied, so be careful not to 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * modify it later. 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return This Item so additional setters can be called. 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public MenuItem setIntent(Intent intent); 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return the Intent associated with this item. This returns a 3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * reference to the Intent which you can change as desired to modify 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * what the Item is holding. 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #setIntent 3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Returns the last value supplied to {@link #setIntent}, or 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * null. 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Intent getIntent(); 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Change both the numeric and alphabetic shortcut associated with this 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * item. Note that the shortcut will be triggered when the key that 318e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * generates the given character is pressed along with the corresponding 319e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * modifier key. The default modifier is {@link KeyEvent#META_CTRL_ON} in 320e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * case nothing is specified. Also note that case is not significant and 321e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * that alphabetic shortcut characters will be handled in lower case. 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See {@link Menu} for the menu types that support shortcuts. 324e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param numericChar The numeric shortcut key. This is the shortcut when 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * using a numeric (e.g., 12-key) keyboard. 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param alphaChar The alphabetic shortcut key. This is the shortcut when 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * using a keyboard with alphabetic keys. 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return This Item so additional setters can be called. 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public MenuItem setShortcut(char numericChar, char alphaChar); 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 334e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * Change both the numeric and alphabetic shortcut associated with this 335e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * item. Note that the shortcut will be triggered when the key that 336e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * generates the given character is pressed along with the corresponding 337e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * modifier key. Also note that case is not significant and that alphabetic 338e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * shortcut characters will be handled in lower case. 339e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * <p> 340e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * See {@link Menu} for the menu types that support shortcuts. 341e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * 342e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * @param numericChar The numeric shortcut key. This is the shortcut when 343e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * using a numeric (e.g., 12-key) keyboard. 344e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * @param numericModifiers The numeric modifier associated with the shortcut. It should 345e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * be a combination of {@link KeyEvent#META_META_ON}, {@link KeyEvent#META_CTRL_ON}, 346e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * {@link KeyEvent#META_ALT_ON}, {@link KeyEvent#META_SHIFT_ON}, 347e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * {@link KeyEvent#META_SYM_ON}, {@link KeyEvent#META_FUNCTION_ON}. 348e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * @param alphaChar The alphabetic shortcut key. This is the shortcut when 349e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * using a keyboard with alphabetic keys. 350e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * @param alphaModifiers The alphabetic modifier associated with the shortcut. It should 351e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * be a combination of {@link KeyEvent#META_META_ON}, {@link KeyEvent#META_CTRL_ON}, 352e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * {@link KeyEvent#META_ALT_ON}, {@link KeyEvent#META_SHIFT_ON}, 353e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * {@link KeyEvent#META_SYM_ON}, {@link KeyEvent#META_FUNCTION_ON}. 354e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * @return This Item so additional setters can be called. 355e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal */ 356e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal default public MenuItem setShortcut(char numericChar, char alphaChar, int numericModifiers, 357e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal int alphaModifiers) { 358e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal if ((alphaModifiers & Menu.SUPPORTED_MODIFIERS_MASK) == KeyEvent.META_CTRL_ON 359e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal && (numericModifiers & Menu.SUPPORTED_MODIFIERS_MASK) == KeyEvent.META_CTRL_ON) { 360e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal return setShortcut(numericChar, alphaChar); 361e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal } else { 362e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal return this; 363e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal } 364e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal } 365e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal 366e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal /** 3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Change the numeric shortcut associated with this item. 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See {@link Menu} for the menu types that support shortcuts. 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param numericChar The numeric shortcut key. This is the shortcut when 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * using a 12-key (numeric) keyboard. 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return This Item so additional setters can be called. 3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public MenuItem setNumericShortcut(char numericChar); 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 378e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * Change the numeric shortcut and modifiers associated with this item. 379e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * <p> 380e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * See {@link Menu} for the menu types that support shortcuts. 381e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * 382e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * @param numericChar The numeric shortcut key. This is the shortcut when 383e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * using a 12-key (numeric) keyboard. 384e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * @param numericModifiers The modifier associated with the shortcut. It should 385e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * be a combination of {@link KeyEvent#META_META_ON}, {@link KeyEvent#META_CTRL_ON}, 386e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * {@link KeyEvent#META_ALT_ON}, {@link KeyEvent#META_SHIFT_ON}, 387e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * {@link KeyEvent#META_SYM_ON}, {@link KeyEvent#META_FUNCTION_ON}. 388e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * @return This Item so additional setters can be called. 389e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal */ 390e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal default public MenuItem setNumericShortcut(char numericChar, int numericModifiers) { 391e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal if ((numericModifiers & Menu.SUPPORTED_MODIFIERS_MASK) == KeyEvent.META_CTRL_ON) { 392e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal return setNumericShortcut(numericChar); 393e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal } else { 394e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal return this; 395e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal } 396e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal } 397e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal 398e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal /** 3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return the char for this menu item's numeric (12-key) shortcut. 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Numeric character to use as a shortcut. 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public char getNumericShortcut(); 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 406e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * Return the modifiers for this menu item's numeric (12-key) shortcut. 407e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * The modifier is a combination of {@link KeyEvent#META_META_ON}, 408e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * {@link KeyEvent#META_CTRL_ON}, {@link KeyEvent#META_ALT_ON}, 409e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * {@link KeyEvent#META_SHIFT_ON}, {@link KeyEvent#META_SYM_ON}, 410e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * {@link KeyEvent#META_FUNCTION_ON}. 411e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * For example, {@link KeyEvent#META_FUNCTION_ON}|{@link KeyEvent#META_CTRL_ON} 412e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * 413e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * @return Modifier associated with the numeric shortcut. 414e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal */ 415e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal default public int getNumericModifiers() { 416e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal return KeyEvent.META_CTRL_ON; 417e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal } 418e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal 419e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal /** 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Change the alphabetic shortcut associated with this item. The shortcut 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * will be triggered when the key that generates the given character is 422e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * pressed along with the corresponding modifier key. The default modifier 423e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * is {@link KeyEvent#META_CTRL_ON} in case nothing is specified. Case is 424e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * not significant and shortcut characters will be displayed in lower case. 425e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * Note that menu items with the characters '\b' or '\n' as shortcuts will 426e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * get triggered by the Delete key or Carriage Return key, respectively. 427e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * <p> 428e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * See {@link Menu} for the menu types that support shortcuts. 429e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * 430e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * @param alphaChar The alphabetic shortcut key. This is the shortcut when 431e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * using a keyboard with alphabetic keys. 432e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * @return This Item so additional setters can be called. 433e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal */ 434e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal public MenuItem setAlphabeticShortcut(char alphaChar); 435e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal 436e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal /** 437e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * Change the alphabetic shortcut associated with this item. The shortcut 438e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * will be triggered when the key that generates the given character is 439e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * pressed along with the modifier keys. Case is not significant and shortcut 4407b69e056fde74413e2a028b504d9f526ae04ca8aMichael Wright * characters will be displayed in lower case. Note that menu items with 4417b69e056fde74413e2a028b504d9f526ae04ca8aMichael Wright * the characters '\b' or '\n' as shortcuts will get triggered by the 4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Delete key or Carriage Return key, respectively. 4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See {@link Menu} for the menu types that support shortcuts. 445e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * 4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param alphaChar The alphabetic shortcut key. This is the shortcut when 4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * using a keyboard with alphabetic keys. 448e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * @param alphaModifiers The modifier associated with the shortcut. It should 449e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * be a combination of {@link KeyEvent#META_META_ON}, {@link KeyEvent#META_CTRL_ON}, 450e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * {@link KeyEvent#META_ALT_ON}, {@link KeyEvent#META_SHIFT_ON}, 451e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * {@link KeyEvent#META_SYM_ON}, {@link KeyEvent#META_FUNCTION_ON}. 4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return This Item so additional setters can be called. 4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 454e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal default public MenuItem setAlphabeticShortcut(char alphaChar, int alphaModifiers) { 455e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal if ((alphaModifiers & Menu.SUPPORTED_MODIFIERS_MASK) == KeyEvent.META_CTRL_ON) { 456e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal return setAlphabeticShortcut(alphaChar); 457e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal } else { 458e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal return this; 459e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal } 460e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal } 4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return the char for this menu item's alphabetic shortcut. 4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Alphabetic character to use as a shortcut. 4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public char getAlphabeticShortcut(); 4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 470e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * Return the modifier for this menu item's alphabetic shortcut. 471e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * The modifier is a combination of {@link KeyEvent#META_META_ON}, 472e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * {@link KeyEvent#META_CTRL_ON}, {@link KeyEvent#META_ALT_ON}, 473e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * {@link KeyEvent#META_SHIFT_ON}, {@link KeyEvent#META_SYM_ON}, 474e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * {@link KeyEvent#META_FUNCTION_ON}. 475e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * For example, {@link KeyEvent#META_FUNCTION_ON}|{@link KeyEvent#META_CTRL_ON} 476e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * 477e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * @return Modifier associated with the keyboard shortcut. 478e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal */ 479e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal default public int getAlphabeticModifiers() { 480e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal return KeyEvent.META_CTRL_ON; 481e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal } 482e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal 483e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal /** 4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Control whether this item can display a check mark. Setting this does 4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * not actually display a check mark (see {@link #setChecked} for that); 4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * rather, it ensures there is room in the item in which to display a 4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * check mark. 4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See {@link Menu} for the menu types that support check marks. 490e631e32a1a771a36267af3f8af8b64e9365bc19ePeeyush Agarwal * 4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param checkable Set to true to allow a check mark, false to 4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * disallow. The default is false. 4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #setChecked 4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #isCheckable 4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see Menu#setGroupCheckable 4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return This Item so additional setters can be called. 4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public MenuItem setCheckable(boolean checkable); 4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return whether the item can currently display a check mark. 5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return If a check mark can be displayed, returns true. 5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #setCheckable 5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean isCheckable(); 5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Control whether this item is shown with a check mark. Note that you 5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * must first have enabled checking with {@link #setCheckable} or else 5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the check mark will not appear. If this item is a member of a group that contains 5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * mutually-exclusive items (set via {@link Menu#setGroupCheckable(int, boolean, boolean)}, 5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the other items in the group will be unchecked. 5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See {@link Menu} for the menu types that support check marks. 5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #setCheckable 5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #isChecked 5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see Menu#setGroupCheckable 5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param checked Set to true to display a check mark, false to hide 5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * it. The default value is false. 5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return This Item so additional setters can be called. 5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public MenuItem setChecked(boolean checked); 5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return whether the item is currently displaying a check mark. 5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return If a check mark is displayed, returns true. 5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #setChecked 5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean isChecked(); 5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets the visibility of the menu item. Even if a menu item is not visible, 5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * it may still be invoked via its shortcut (to completely disable an item, 5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * set it to invisible and {@link #setEnabled(boolean) disabled}). 5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param visible If true then the item will be visible; if false it is 5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * hidden. 5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return This Item so additional setters can be called. 5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public MenuItem setVisible(boolean visible); 5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return the visibility of the menu item. 5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return If true the item is visible; else it is hidden. 5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean isVisible(); 5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets whether the menu item is enabled. Disabling a menu item will not 5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * allow it to be invoked via its shortcut. The menu item will still be 5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * visible. 5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param enabled If true then the item will be invokable; if false it is 5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * won't be invokable. 5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return This Item so additional setters can be called. 5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public MenuItem setEnabled(boolean enabled); 5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return the enabled state of the menu item. 5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return If true the item is enabled and hence invokable; else it is not. 5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean isEnabled(); 5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Check whether this item has an associated sub-menu. I.e. it is a 5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * sub-menu of another menu. 5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return If true this item has a menu; else it is a 5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * normal item. 5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean hasSubMenu(); 5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get the sub-menu to be invoked when this item is selected, if it has 5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * one. See {@link #hasSubMenu()}. 5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The associated menu if there is one, else null 5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public SubMenu getSubMenu(); 5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set a custom listener for invocation of this menu item. In most 5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * situations, it is more efficient and easier to use 5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Activity#onOptionsItemSelected(MenuItem)} or 5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Activity#onContextItemSelected(MenuItem)}. 5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param menuItemClickListener The object to receive invokations. 5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return This Item so additional setters can be called. 5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see Activity#onOptionsItemSelected(MenuItem) 5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see Activity#onContextItemSelected(MenuItem) 5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public MenuItem setOnMenuItemClickListener(MenuItem.OnMenuItemClickListener menuItemClickListener); 6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the extra information linked to this menu item. This extra 6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * information is set by the View that added this menu item to the 6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * menu. 6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see OnCreateContextMenuListener 6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The extra information linked to the View that added this 6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * menu item to the menu. This can be null. 6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ContextMenuInfo getMenuInfo(); 61289e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell 61389e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell /** 61489e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell * Sets how this item should display in the presence of an Action Bar. 615759dc706ba61dda6b9eef80ecae2d590383229aeAdam Powell * The parameter actionEnum is a flag set. One of {@link #SHOW_AS_ACTION_ALWAYS}, 616759dc706ba61dda6b9eef80ecae2d590383229aeAdam Powell * {@link #SHOW_AS_ACTION_IF_ROOM}, or {@link #SHOW_AS_ACTION_NEVER} should 617759dc706ba61dda6b9eef80ecae2d590383229aeAdam Powell * be used, and you may optionally OR the value with {@link #SHOW_AS_ACTION_WITH_TEXT}. 618759dc706ba61dda6b9eef80ecae2d590383229aeAdam Powell * SHOW_AS_ACTION_WITH_TEXT requests that when the item is shown as an action, 619759dc706ba61dda6b9eef80ecae2d590383229aeAdam Powell * it should be shown with a text label. 62089e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell * 62189e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell * @param actionEnum How the item should display. One of 622ec66a3a9e06ae91e0b49a5e858e46fe0c91606f1Adam Powell * {@link #SHOW_AS_ACTION_ALWAYS}, {@link #SHOW_AS_ACTION_IF_ROOM}, or 623ec66a3a9e06ae91e0b49a5e858e46fe0c91606f1Adam Powell * {@link #SHOW_AS_ACTION_NEVER}. SHOW_AS_ACTION_NEVER is the default. 62489e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell * 62589e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell * @see android.app.ActionBar 626cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell * @see #setActionView(View) 62789e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell */ 62889e0645b4157961e8c465eb9c819f965fdb453d8Adam Powell public void setShowAsAction(int actionEnum); 629cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell 630cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell /** 6318d02deabac62c4a68a335a7b3141795466362b89Adam Powell * Sets how this item should display in the presence of an Action Bar. 6328d02deabac62c4a68a335a7b3141795466362b89Adam Powell * The parameter actionEnum is a flag set. One of {@link #SHOW_AS_ACTION_ALWAYS}, 6338d02deabac62c4a68a335a7b3141795466362b89Adam Powell * {@link #SHOW_AS_ACTION_IF_ROOM}, or {@link #SHOW_AS_ACTION_NEVER} should 6348d02deabac62c4a68a335a7b3141795466362b89Adam Powell * be used, and you may optionally OR the value with {@link #SHOW_AS_ACTION_WITH_TEXT}. 6358d02deabac62c4a68a335a7b3141795466362b89Adam Powell * SHOW_AS_ACTION_WITH_TEXT requests that when the item is shown as an action, 6368d02deabac62c4a68a335a7b3141795466362b89Adam Powell * it should be shown with a text label. 6378d02deabac62c4a68a335a7b3141795466362b89Adam Powell * 6388d02deabac62c4a68a335a7b3141795466362b89Adam Powell * <p>Note: This method differs from {@link #setShowAsAction(int)} only in that it 6398d02deabac62c4a68a335a7b3141795466362b89Adam Powell * returns the current MenuItem instance for call chaining. 6408d02deabac62c4a68a335a7b3141795466362b89Adam Powell * 6418d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @param actionEnum How the item should display. One of 6428d02deabac62c4a68a335a7b3141795466362b89Adam Powell * {@link #SHOW_AS_ACTION_ALWAYS}, {@link #SHOW_AS_ACTION_IF_ROOM}, or 6438d02deabac62c4a68a335a7b3141795466362b89Adam Powell * {@link #SHOW_AS_ACTION_NEVER}. SHOW_AS_ACTION_NEVER is the default. 6448d02deabac62c4a68a335a7b3141795466362b89Adam Powell * 6458d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @see android.app.ActionBar 6468d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @see #setActionView(View) 6478d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @return This MenuItem instance for call chaining. 6488d02deabac62c4a68a335a7b3141795466362b89Adam Powell */ 6498d02deabac62c4a68a335a7b3141795466362b89Adam Powell public MenuItem setShowAsActionFlags(int actionEnum); 6508d02deabac62c4a68a335a7b3141795466362b89Adam Powell 6518d02deabac62c4a68a335a7b3141795466362b89Adam Powell /** 652cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell * Set an action view for this menu item. An action view will be displayed in place 653cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell * of an automatically generated menu item element in the UI when this item is shown 654cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell * as an action within a parent. 65551ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * <p> 65651ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * <strong>Note:</strong> Setting an action view overrides the action provider 65751ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * set via {@link #setActionProvider(ActionProvider)}. 65851ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * </p> 659cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell * 660cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell * @param view View to use for presenting this item to the user. 661cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell * @return This Item so additional setters can be called. 662cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell * 663cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell * @see #setShowAsAction(int) 664cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell */ 665cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell public MenuItem setActionView(View view); 666cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell 667cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell /** 6683f476b34049d062942eafcf48396f593e00bd324Adam Powell * Set an action view for this menu item. An action view will be displayed in place 6693f476b34049d062942eafcf48396f593e00bd324Adam Powell * of an automatically generated menu item element in the UI when this item is shown 6703f476b34049d062942eafcf48396f593e00bd324Adam Powell * as an action within a parent. 67151ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * <p> 67251ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * <strong>Note:</strong> Setting an action view overrides the action provider 67351ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * set via {@link #setActionProvider(ActionProvider)}. 67451ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * </p> 6753f476b34049d062942eafcf48396f593e00bd324Adam Powell * 6763f476b34049d062942eafcf48396f593e00bd324Adam Powell * @param resId Layout resource to use for presenting this item to the user. 6773f476b34049d062942eafcf48396f593e00bd324Adam Powell * @return This Item so additional setters can be called. 6783f476b34049d062942eafcf48396f593e00bd324Adam Powell * 6793f476b34049d062942eafcf48396f593e00bd324Adam Powell * @see #setShowAsAction(int) 6803f476b34049d062942eafcf48396f593e00bd324Adam Powell */ 6817b9c912f536925ac6ec43935d6e97506851b33d6Tor Norbye public MenuItem setActionView(@LayoutRes int resId); 6823f476b34049d062942eafcf48396f593e00bd324Adam Powell 6833f476b34049d062942eafcf48396f593e00bd324Adam Powell /** 684cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell * Returns the currently set action view for this menu item. 685cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell * 686cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell * @return This item's action view 687cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell * 688cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell * @see #setActionView(View) 689cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell * @see #setShowAsAction(int) 690cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell */ 691cf78b3e5101349fdddbde14b3a55140f9562ae66Adam Powell public View getActionView(); 6928d02deabac62c4a68a335a7b3141795466362b89Adam Powell 6938d02deabac62c4a68a335a7b3141795466362b89Adam Powell /** 69451ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * Sets the {@link ActionProvider} responsible for creating an action view if 69551ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * the item is placed on the action bar. The provider also provides a default 69651ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * action invoked if the item is placed in the overflow menu. 69751ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * <p> 69851ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * <strong>Note:</strong> Setting an action provider overrides the action view 69951ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * set via {@link #setActionView(int)} or {@link #setActionView(View)}. 70051ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * </p> 70151ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * 70251ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * @param actionProvider The action provider. 70351ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * @return This Item so additional setters can be called. 70451ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * 70551ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * @see ActionProvider 70651ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov */ 70751ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov public MenuItem setActionProvider(ActionProvider actionProvider); 70851ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov 70951ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov /** 71051ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * Gets the {@link ActionProvider}. 71151ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * 71251ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * @return The action provider. 71351ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * 71451ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * @see ActionProvider 71551ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov * @see #setActionProvider(ActionProvider) 71651ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov */ 71751ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov public ActionProvider getActionProvider(); 71851ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov 71951ac0e94a83cfccb5105aa14df1077729a5b4cccSvetoslav Ganov /** 7208d02deabac62c4a68a335a7b3141795466362b89Adam Powell * Expand the action view associated with this menu item. 7218d02deabac62c4a68a335a7b3141795466362b89Adam Powell * The menu item must have an action view set, as well as 7228d02deabac62c4a68a335a7b3141795466362b89Adam Powell * the showAsAction flag {@link #SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW}. 7238d02deabac62c4a68a335a7b3141795466362b89Adam Powell * If a listener has been set using {@link #setOnActionExpandListener(OnActionExpandListener)} 7248d02deabac62c4a68a335a7b3141795466362b89Adam Powell * it will have its {@link OnActionExpandListener#onMenuItemActionExpand(MenuItem)} 7258d02deabac62c4a68a335a7b3141795466362b89Adam Powell * method invoked. The listener may return false from this method to prevent expanding 7268d02deabac62c4a68a335a7b3141795466362b89Adam Powell * the action view. 7278d02deabac62c4a68a335a7b3141795466362b89Adam Powell * 7288d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @return true if the action view was expanded, false otherwise. 7298d02deabac62c4a68a335a7b3141795466362b89Adam Powell */ 7308d02deabac62c4a68a335a7b3141795466362b89Adam Powell public boolean expandActionView(); 7318d02deabac62c4a68a335a7b3141795466362b89Adam Powell 7328d02deabac62c4a68a335a7b3141795466362b89Adam Powell /** 7338d02deabac62c4a68a335a7b3141795466362b89Adam Powell * Collapse the action view associated with this menu item. 7348d02deabac62c4a68a335a7b3141795466362b89Adam Powell * The menu item must have an action view set, as well as the showAsAction flag 7358d02deabac62c4a68a335a7b3141795466362b89Adam Powell * {@link #SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW}. If a listener has been set using 7368d02deabac62c4a68a335a7b3141795466362b89Adam Powell * {@link #setOnActionExpandListener(OnActionExpandListener)} it will have its 7378d02deabac62c4a68a335a7b3141795466362b89Adam Powell * {@link OnActionExpandListener#onMenuItemActionCollapse(MenuItem)} method invoked. 7388d02deabac62c4a68a335a7b3141795466362b89Adam Powell * The listener may return false from this method to prevent collapsing the action view. 7398d02deabac62c4a68a335a7b3141795466362b89Adam Powell * 7408d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @return true if the action view was collapsed, false otherwise. 7418d02deabac62c4a68a335a7b3141795466362b89Adam Powell */ 7428d02deabac62c4a68a335a7b3141795466362b89Adam Powell public boolean collapseActionView(); 7438d02deabac62c4a68a335a7b3141795466362b89Adam Powell 7448d02deabac62c4a68a335a7b3141795466362b89Adam Powell /** 7458d02deabac62c4a68a335a7b3141795466362b89Adam Powell * Returns true if this menu item's action view has been expanded. 7468d02deabac62c4a68a335a7b3141795466362b89Adam Powell * 7478d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @return true if the item's action view is expanded, false otherwise. 7488d02deabac62c4a68a335a7b3141795466362b89Adam Powell * 7498d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @see #expandActionView() 7508d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @see #collapseActionView() 7518d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @see #SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW 7528d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @see OnActionExpandListener 7538d02deabac62c4a68a335a7b3141795466362b89Adam Powell */ 7548d02deabac62c4a68a335a7b3141795466362b89Adam Powell public boolean isActionViewExpanded(); 7558d02deabac62c4a68a335a7b3141795466362b89Adam Powell 7568d02deabac62c4a68a335a7b3141795466362b89Adam Powell /** 7578d02deabac62c4a68a335a7b3141795466362b89Adam Powell * Set an {@link OnActionExpandListener} on this menu item to be notified when 7588d02deabac62c4a68a335a7b3141795466362b89Adam Powell * the associated action view is expanded or collapsed. The menu item must 7598d02deabac62c4a68a335a7b3141795466362b89Adam Powell * be configured to expand or collapse its action view using the flag 7608d02deabac62c4a68a335a7b3141795466362b89Adam Powell * {@link #SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW}. 7618d02deabac62c4a68a335a7b3141795466362b89Adam Powell * 7628d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @param listener Listener that will respond to expand/collapse events 7638d02deabac62c4a68a335a7b3141795466362b89Adam Powell * @return This menu item instance for call chaining 7648d02deabac62c4a68a335a7b3141795466362b89Adam Powell */ 7658d02deabac62c4a68a335a7b3141795466362b89Adam Powell public MenuItem setOnActionExpandListener(OnActionExpandListener listener); 7667039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev 7677039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev /** 7687039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev * Change the content description associated with this menu item. 7697039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev * 7707039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev * @param contentDescription The new content description. 7717039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev */ 7727039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev default MenuItem setContentDescription(CharSequence contentDescription) { 7737039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev return this; 7747039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev } 7757039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev 7767039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev /** 7777039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev * Retrieve the content description associated with this menu item. 7787039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev * 7797039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev * @return The content description. 7807039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev */ 7817039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev default CharSequence getContentDescription() { 7827039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev return null; 7837039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev } 7847039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev 7857039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev /** 7867039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev * Change the tooltip text associated with this menu item. 7877039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev * 7886a944ca17547e520ed4988125ee4c1f172c87946Vladislav Kaznacheev * @param tooltipText The new tooltip text. 7897039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev */ 7906a944ca17547e520ed4988125ee4c1f172c87946Vladislav Kaznacheev default MenuItem setTooltipText(CharSequence tooltipText) { 7917039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev return this; 7927039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev } 7937039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev 7947039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev /** 7957039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev * Retrieve the tooltip text associated with this menu item. 7967039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev * 7977039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev * @return The tooltip text. 7987039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev */ 7996a944ca17547e520ed4988125ee4c1f172c87946Vladislav Kaznacheev default CharSequence getTooltipText() { 8007039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev return null; 8017039cbc6f3a596aee6851014019849490f358f13Vladislav Kaznacheev } 802484c2e2fbec02209337bb86fc99b8b253bc06f99Siyamed Sinir 803484c2e2fbec02209337bb86fc99b8b253bc06f99Siyamed Sinir /** 8049c881f227b2a136193a0a9236100075363a76f68Abodunrinwa Toki * Returns true if {@link #setShowAsAction(int)} was set to {@link #SHOW_AS_ACTION_ALWAYS}. 8059c881f227b2a136193a0a9236100075363a76f68Abodunrinwa Toki * Default value is {@code false}. 806484c2e2fbec02209337bb86fc99b8b253bc06f99Siyamed Sinir * 807484c2e2fbec02209337bb86fc99b8b253bc06f99Siyamed Sinir * @hide 808484c2e2fbec02209337bb86fc99b8b253bc06f99Siyamed Sinir */ 8099c881f227b2a136193a0a9236100075363a76f68Abodunrinwa Toki default boolean requiresActionButton() { 810484c2e2fbec02209337bb86fc99b8b253bc06f99Siyamed Sinir return false; 811484c2e2fbec02209337bb86fc99b8b253bc06f99Siyamed Sinir } 8129c881f227b2a136193a0a9236100075363a76f68Abodunrinwa Toki 8139c881f227b2a136193a0a9236100075363a76f68Abodunrinwa Toki /** 8149c881f227b2a136193a0a9236100075363a76f68Abodunrinwa Toki * Returns true if {@link #setShowAsAction(int)} was set to {@link #SHOW_AS_ACTION_NEVER}. 8159c881f227b2a136193a0a9236100075363a76f68Abodunrinwa Toki * Default value is {@code true}. 8169c881f227b2a136193a0a9236100075363a76f68Abodunrinwa Toki * 8179c881f227b2a136193a0a9236100075363a76f68Abodunrinwa Toki * @hide 8189c881f227b2a136193a0a9236100075363a76f68Abodunrinwa Toki */ 8199c881f227b2a136193a0a9236100075363a76f68Abodunrinwa Toki default boolean requiresOverflow() { 8209c881f227b2a136193a0a9236100075363a76f68Abodunrinwa Toki return true; 8219c881f227b2a136193a0a9236100075363a76f68Abodunrinwa Toki } 8227b69e056fde74413e2a028b504d9f526ae04ca8aMichael Wright} 823