ActionBar.java revision a408291e22def5755559f42cde913706a6d628c0
133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell/* 233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Copyright (C) 2010 The Android Open Source Project 333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * 433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Licensed under the Apache License, Version 2.0 (the "License"); 533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * you may not use this file except in compliance with the License. 633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * You may obtain a copy of the License at 733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * 833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * http://www.apache.org/licenses/LICENSE-2.0 933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * 1033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Unless required by applicable law or agreed to in writing, software 1133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * distributed under the License is distributed on an "AS IS" BASIS, 1233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * See the License for the specific language governing permissions and 1433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * limitations under the License. 1533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 1633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 1733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powellpackage android.app; 1833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 1933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powellimport android.graphics.drawable.Drawable; 2033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powellimport android.view.Menu; 2133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powellimport android.view.MenuItem; 2233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powellimport android.view.View; 23a408291e22def5755559f42cde913706a6d628c0Adam Powellimport android.widget.AdapterView; 24a408291e22def5755559f42cde913706a6d628c0Adam Powellimport android.widget.SpinnerAdapter; 2533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 2633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell/** 2733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * This is the public interface to the contextual ActionBar. 2833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * The ActionBar acts as a replacement for the title bar in Activities. 2933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * It provides facilities for creating toolbar actions as well as 3033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * methods of navigating around an application. 3133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 3233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powellpublic abstract class ActionBar { 33a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell /** 34a408291e22def5755559f42cde913706a6d628c0Adam Powell * Standard navigation mode. Consists of either a logo or icon 35a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell * and title text with an optional subtitle. Clicking any of these elements 36a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell * will dispatch onActionItemSelected to the registered Callback with 37a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell * a MenuItem with item ID android.R.id.home. 38a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell */ 39a408291e22def5755559f42cde913706a6d628c0Adam Powell public static final int NAVIGATION_MODE_STANDARD = 0; 4033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 4133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 4233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Dropdown list navigation mode. Instead of static title text this mode 4333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * presents a dropdown menu for navigation within the activity. 4433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 4533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public static final int NAVIGATION_MODE_DROPDOWN_LIST = 1; 4633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 4733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 4833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Tab navigation mode. Instead of static title text this mode 4933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * presents a series of tabs for navigation within the activity. 5033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 5133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public static final int NAVIGATION_MODE_TABS = 2; 5233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 5333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 5433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Custom navigation mode. This navigation mode is set implicitly whenever 5533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * a custom navigation view is set. See {@link #setCustomNavigationView(View)}. 5633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 5733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public static final int NAVIGATION_MODE_CUSTOM = 3; 5833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 5933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 6033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Use logo instead of icon if available. This flag will cause appropriate 6133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * navigation modes to use a wider logo in place of the standard icon. 6233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 6333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public static final int DISPLAY_USE_LOGO = 0x1; 6433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 6533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 6633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Hide 'home' elements in this action bar, leaving more space for other 6733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * navigation elements. This includes logo and icon. 6833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 6933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public static final int DISPLAY_HIDE_HOME = 0x2; 7033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 7133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 7233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Set the callback that the ActionBar will use to handle events 7333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * and populate menus. 7433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * @param callback Callback to use 7533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 7633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public abstract void setCallback(Callback callback); 7733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 7833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 79a408291e22def5755559f42cde913706a6d628c0Adam Powell * Set the action bar into custom navigation mode, supplying a view 80a408291e22def5755559f42cde913706a6d628c0Adam Powell * for custom navigation. 8133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * 8233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Custom navigation views appear between the application icon and 8333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * any action buttons and may use any space available there. Common 84a408291e22def5755559f42cde913706a6d628c0Adam Powell * use cases for custom navigation views might include an auto-suggesting 85a408291e22def5755559f42cde913706a6d628c0Adam Powell * address bar for a browser or other navigation mechanisms that do not 86a408291e22def5755559f42cde913706a6d628c0Adam Powell * translate well to provided navigation modes. 8733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * 8833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * @param view Custom navigation view to place in the ActionBar. 8933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 90a408291e22def5755559f42cde913706a6d628c0Adam Powell public abstract void setCustomNavigationMode(View view); 9133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 9233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 93a408291e22def5755559f42cde913706a6d628c0Adam Powell * Set the action bar into dropdown navigation mode and supply an adapter 94a408291e22def5755559f42cde913706a6d628c0Adam Powell * that will provide views for navigation choices. 9533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * 96a408291e22def5755559f42cde913706a6d628c0Adam Powell * @param adapter An adapter that will provide views both to display 97a408291e22def5755559f42cde913706a6d628c0Adam Powell * the current navigation selection and populate views 98a408291e22def5755559f42cde913706a6d628c0Adam Powell * within the dropdown navigation menu. 9933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 100a408291e22def5755559f42cde913706a6d628c0Adam Powell public abstract void setDropdownNavigationMode(SpinnerAdapter adapter); 101a408291e22def5755559f42cde913706a6d628c0Adam Powell 10233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 103a408291e22def5755559f42cde913706a6d628c0Adam Powell * Set the action bar into standard navigation mode, supplying a title and subtitle. 10433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * 105a408291e22def5755559f42cde913706a6d628c0Adam Powell * Standard navigation mode is default. The title is automatically set to the 106a408291e22def5755559f42cde913706a6d628c0Adam Powell * name of your Activity. Subtitles are displayed underneath the title, usually 107a408291e22def5755559f42cde913706a6d628c0Adam Powell * in a smaller font or otherwise less prominently than the title. Subtitles are 108a408291e22def5755559f42cde913706a6d628c0Adam Powell * good for extended descriptions of activity state. 109a408291e22def5755559f42cde913706a6d628c0Adam Powell * 110a408291e22def5755559f42cde913706a6d628c0Adam Powell * @param title The action bar's title. null is treated as an empty string. 111a408291e22def5755559f42cde913706a6d628c0Adam Powell * @param subtitle The action bar's subtitle. null is treated as an empty string. 11233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 113a408291e22def5755559f42cde913706a6d628c0Adam Powell public abstract void setStandardNavigationMode(CharSequence title, CharSequence subtitle); 114a408291e22def5755559f42cde913706a6d628c0Adam Powell 11533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 116a408291e22def5755559f42cde913706a6d628c0Adam Powell * Set the action bar into standard navigation mode, supplying a title and subtitle. 117a408291e22def5755559f42cde913706a6d628c0Adam Powell * 118a408291e22def5755559f42cde913706a6d628c0Adam Powell * Standard navigation mode is default. The title is automatically set to the 119a408291e22def5755559f42cde913706a6d628c0Adam Powell * name of your Activity. 12033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * 121a408291e22def5755559f42cde913706a6d628c0Adam Powell * @param title The action bar's title. null is treated as an empty string. 12233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 123a408291e22def5755559f42cde913706a6d628c0Adam Powell public abstract void setStandardNavigationMode(CharSequence title); 124a408291e22def5755559f42cde913706a6d628c0Adam Powell 12533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 126a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell * Set display options. This changes all display option bits at once. To change 127a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell * a limited subset of display options, see {@link #setDisplayOptions(int, int)}. 12833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * 12933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * @param options A combination of the bits defined by the DISPLAY_ constants 13033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * defined in ActionBar. 13133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 13233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public abstract void setDisplayOptions(int options); 13333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 13433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 135a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell * Set selected display options. Only the options specified by mask will be changed. 136a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell * To change all display option bits at once, see {@link #setDisplayOptions(int)}. 137a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell * 138a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell * <p>Example: setDisplayOptions(0, DISPLAY_HIDE_HOME) will disable the 139a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell * {@link #DISPLAY_HIDE_HOME} option. 140a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell * setDisplayOptions(DISPLAY_HIDE_HOME, DISPLAY_HIDE_HOME | DISPLAY_USE_LOGO) 141a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell * will enable {@link #DISPLAY_HIDE_HOME} and disable {@link #DISPLAY_USE_LOGO}. 142a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell * 143a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell * @param options A combination of the bits defined by the DISPLAY_ constants 144a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell * defined in ActionBar. 145a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell * @param mask A bit mask declaring which display options should be changed. 146a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell */ 147a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell public abstract void setDisplayOptions(int options, int mask); 148a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell 149a1700783b52c3f4e6b52ea425cdce93c74936586Adam Powell /** 15033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Set the ActionBar's background. 15133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * 15233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * @param d Background drawable 15333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 15433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public abstract void setBackgroundDrawable(Drawable d); 15533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 15633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 15733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Set a drawable to use as a divider between sections of the ActionBar. 15833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * 15933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * @param d Divider drawable 16033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 16133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public abstract void setDividerDrawable(Drawable d); 16233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 16333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 16433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * @return The current custom navigation view. 16533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 16633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public abstract View getCustomNavigationView(); 16733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 16833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 169a408291e22def5755559f42cde913706a6d628c0Adam Powell * Returns the current ActionBar title in standard mode. 170a408291e22def5755559f42cde913706a6d628c0Adam Powell * Returns null if {@link #getNavigationMode()} would not return 171a408291e22def5755559f42cde913706a6d628c0Adam Powell * {@link #NAVIGATION_MODE_STANDARD}. 172a408291e22def5755559f42cde913706a6d628c0Adam Powell * 173a408291e22def5755559f42cde913706a6d628c0Adam Powell * @return The current ActionBar title or null. 17433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 17533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public abstract CharSequence getTitle(); 17633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 17733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 178a408291e22def5755559f42cde913706a6d628c0Adam Powell * Returns the current ActionBar subtitle in standard mode. 179a408291e22def5755559f42cde913706a6d628c0Adam Powell * Returns null if {@link #getNavigationMode()} would not return 180a408291e22def5755559f42cde913706a6d628c0Adam Powell * {@link #NAVIGATION_MODE_STANDARD}. 181a408291e22def5755559f42cde913706a6d628c0Adam Powell * 182a408291e22def5755559f42cde913706a6d628c0Adam Powell * @return The current ActionBar subtitle or null. 18333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 18433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public abstract CharSequence getSubtitle(); 18533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 18633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 187a408291e22def5755559f42cde913706a6d628c0Adam Powell * Returns the current navigation mode. The result will be one of: 188a408291e22def5755559f42cde913706a6d628c0Adam Powell * <ul> 189a408291e22def5755559f42cde913706a6d628c0Adam Powell * <li>{@link #NAVIGATION_MODE_STANDARD}</li> 190a408291e22def5755559f42cde913706a6d628c0Adam Powell * <li>{@link #NAVIGATION_MODE_DROPDOWN_LIST}</li> 191a408291e22def5755559f42cde913706a6d628c0Adam Powell * <li>{@link #NAVIGATION_MODE_TABS}</li> 192a408291e22def5755559f42cde913706a6d628c0Adam Powell * <li>{@link #NAVIGATION_MODE_CUSTOM}</li> 193a408291e22def5755559f42cde913706a6d628c0Adam Powell * </ul> 194a408291e22def5755559f42cde913706a6d628c0Adam Powell * 19533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * @return The current navigation mode. 196a408291e22def5755559f42cde913706a6d628c0Adam Powell * 197a408291e22def5755559f42cde913706a6d628c0Adam Powell * @see #setStandardNavigationMode(CharSequence) 198a408291e22def5755559f42cde913706a6d628c0Adam Powell * @see #setStandardNavigationMode(CharSequence, CharSequence) 199a408291e22def5755559f42cde913706a6d628c0Adam Powell * @see #setDropdownNavigationMode(SpinnerAdapter) 200a408291e22def5755559f42cde913706a6d628c0Adam Powell * @see #setCustomNavigationMode(View) 20133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 20233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public abstract int getNavigationMode(); 20333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 20433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 20533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * @return The current set of display options. 20633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 20733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public abstract int getDisplayOptions(); 20833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 20933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 21033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Request an update of the items in the action menu. 21133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * This will result in a call to Callback.onUpdateActionMenu(Menu) 21233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * and the ActionBar will update based on any changes made there. 21333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 21433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public abstract void updateActionMenu(); 21533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 21633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 21733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Callback interface for ActionBar events. 21833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 21933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public interface Callback { 22033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 22133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Initialize the always-visible contents of the action bar. 22233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * You should place your menu items into <var>menu</var>. 22333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * 22433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * <p>This is only called once, the first time the action bar is displayed. 22533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * 22633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * @param menu The action menu in which to place your items. 22733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * @return You must return true for actions to be displayed; 22833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * if you return false they will not be shown. 22933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * 230a408291e22def5755559f42cde913706a6d628c0Adam Powell * @see #onActionItemClicked(MenuItem) 23133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 23233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public boolean onCreateActionMenu(Menu menu); 23333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 23433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 23533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Update the action bar. This is called in response to {@link #updateActionMenu()} 23633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * calls, which may be application-initiated or the result of changing fragment state. 23733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * 23833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * @return true if the action bar should update based on altered menu contents, 23933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * false if no changes are necessary. 24033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 24133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public boolean onUpdateActionMenu(Menu menu); 24233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 24333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 244a408291e22def5755559f42cde913706a6d628c0Adam Powell * This hook is called whenever an action item in your action bar is clicked. 24533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * The default implementation simply returns false to have the normal 24633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * processing happen (sending a message to its handler). You can use this 24733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * method for any items for which you would like to do processing without 24833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * those other facilities. 24933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * 25033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * @param item The action bar item that was selected. 25133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * @return boolean Return false to allow normal menu processing to proceed, 25233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * true to consume it here. 25333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 254a408291e22def5755559f42cde913706a6d628c0Adam Powell public boolean onActionItemClicked(MenuItem item); 255a408291e22def5755559f42cde913706a6d628c0Adam Powell 256a408291e22def5755559f42cde913706a6d628c0Adam Powell /** 257a408291e22def5755559f42cde913706a6d628c0Adam Powell * This method is called whenever a navigation item in your action bar 258a408291e22def5755559f42cde913706a6d628c0Adam Powell * is selected. 259a408291e22def5755559f42cde913706a6d628c0Adam Powell * 260a408291e22def5755559f42cde913706a6d628c0Adam Powell * @param itemPosition Position of the item clicked. 261a408291e22def5755559f42cde913706a6d628c0Adam Powell * @param itemId ID of the item clicked. 262a408291e22def5755559f42cde913706a6d628c0Adam Powell * @return True if the event was handled, false otherwise. 263a408291e22def5755559f42cde913706a6d628c0Adam Powell */ 264a408291e22def5755559f42cde913706a6d628c0Adam Powell public boolean onNavigationItemSelected(int itemPosition, long itemId); 265a408291e22def5755559f42cde913706a6d628c0Adam Powell 26633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /* 26733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * In progress 26833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 26933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public boolean onCreateContextMode(int modeId, Menu menu); 27033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public boolean onPrepareContextMode(int modeId, Menu menu); 271a408291e22def5755559f42cde913706a6d628c0Adam Powell public boolean onContextItemClicked(int modeId, MenuItem item); 27233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell } 27333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 27433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell /** 27533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Simple stub implementations of ActionBar.Callback methods. 27633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell * Extend this if you only need a subset of Callback functionality. 27733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell */ 27833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public static class SimpleCallback implements Callback { 27933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public boolean onCreateActionMenu(Menu menu) { 28033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell return false; 28133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell } 28233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 28333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public boolean onUpdateActionMenu(Menu menu) { 28433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell return false; 28533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell } 28633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 287a408291e22def5755559f42cde913706a6d628c0Adam Powell public boolean onActionItemClicked(MenuItem item) { 28833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell return false; 28933b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell } 29033b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 29133b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public boolean onCreateContextMode(int modeId, Menu menu) { 29233b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell return false; 29333b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell } 29433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 29533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell public boolean onPrepareContextMode(int modeId, Menu menu) { 29633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell return false; 29733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell } 29833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 299a408291e22def5755559f42cde913706a6d628c0Adam Powell public boolean onContextItemClicked(int modeId, MenuItem item) { 300a408291e22def5755559f42cde913706a6d628c0Adam Powell return false; 301a408291e22def5755559f42cde913706a6d628c0Adam Powell } 302a408291e22def5755559f42cde913706a6d628c0Adam Powell 303a408291e22def5755559f42cde913706a6d628c0Adam Powell public boolean onNavigationItemSelected(int itemPosition, long itemId) { 30433b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell return false; 30533b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell } 30633b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell } 30733b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell 30833b974393b6fadcefc896ec4a0f9b66724f61e9fAdam Powell} 309