Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (C) 2010 The Android Open Source Project
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package com.actionbarsherlock.app;
 
A window feature at the top of the activity that may display the activity title, navigation modes, and other interactive items.

Beginning with Android 3.0 (API level 11), the action bar appears at the top of an activity's window when the activity uses the system's android.R.style.Theme_Holo theme (or one of its descendant themes), which is the default. You may otherwise add the action bar by calling android.view.Window.requestFeature(int) or by declaring it in a custom theme with the windowActionBar property.

By default, the action bar shows the application icon on the left, followed by the activity title. If your activity has an options menu, you can make select items accessible directly from the action bar as "action items". You can also modify various characteristics of the action bar or remove it completely.

From your activity, you can retrieve an instance of ActionBar by calling android.app.Activity.getActionBar().

In some cases, the action bar may be overlayed by another bar that enables contextual actions, using an android.view.ActionMode. For example, when the user selects one or more items in your activity, you can enable an action mode that offers actions specific to the selected items, with a UI that temporarily replaces the action bar. Although the UI may occupy the same space, the android.view.ActionMode APIs are distinct and independent from those for ActionBar.

Developer Guides

For information about how to use the action bar, including how to add action items, navigation modes and more, read the Action Bar developer guide.

 
 public abstract class ActionBar {
    
Standard navigation mode. Consists of either a logo or icon and title text with an optional subtitle. Clicking any of these elements will dispatch onOptionsItemSelected to the host Activity with a MenuItem with item ID android.R.id.home.
 
     public static final int NAVIGATION_MODE_STANDARD = ...;

    
List navigation mode. Instead of static title text this mode presents a list menu for navigation within the activity. e.g. this might be presented to the user as a dropdown list.
 
     public static final int NAVIGATION_MODE_LIST = ...;

    
Tab navigation mode. Instead of static title text this mode presents a series of tabs for navigation within the activity.
 
     public static final int NAVIGATION_MODE_TABS = ...;

    
Use logo instead of icon if available. This flag will cause appropriate navigation modes to use a wider logo in place of the standard icon.

 
     public static final int DISPLAY_USE_LOGO = ...;

    
Show 'home' elements in this action bar, leaving more space for other navigation elements. This includes logo and icon.

 
     public static final int DISPLAY_SHOW_HOME = ...;

    
Display the 'home' element such that it appears as an 'up' affordance. e.g. show an arrow to the left indicating the action that will be taken. Set this flag if selecting the 'home' button in the action bar to return up by a single level in your UI rather than back to the top level or front page.

Setting this option will implicitly enable interaction with the home/up button. See setHomeButtonEnabled(boolean).

    public static final int DISPLAY_HOME_AS_UP = ...;

    
    public static final int DISPLAY_SHOW_TITLE = ...;

    
    public static final int DISPLAY_SHOW_CUSTOM = ...;

    
Set the action bar into custom navigation mode, supplying a view for custom navigation. Custom navigation views appear between the application icon and any action buttons and may use any space available there. Common use cases for custom navigation views might include an auto-suggesting address bar for a browser or other navigation mechanisms that do not translate well to provided navigation modes.

Parameters:
view Custom navigation view to place in the ActionBar.
    public abstract void setCustomView(View view);

    
Set the action bar into custom navigation mode, supplying a view for custom navigation.

Custom navigation views appear between the application icon and any action buttons and may use any space available there. Common use cases for custom navigation views might include an auto-suggesting address bar for a browser or other navigation mechanisms that do not translate well to provided navigation modes.

The display option DISPLAY_SHOW_CUSTOM must be set for the custom view to be displayed.

Parameters:
view Custom navigation view to place in the ActionBar.
layoutParams How this custom view should layout in the bar.
See also:
setDisplayOptions(int,int)
    public abstract void setCustomView(View viewLayoutParams layoutParams);

    
Set the action bar into custom navigation mode, supplying a view for custom navigation.

Custom navigation views appear between the application icon and any action buttons and may use any space available there. Common use cases for custom navigation views might include an auto-suggesting address bar for a browser or other navigation mechanisms that do not translate well to provided navigation modes.

The display option DISPLAY_SHOW_CUSTOM must be set for the custom view to be displayed.

Parameters:
resId Resource ID of a layout to inflate into the ActionBar.
See also:
setDisplayOptions(int,int)
    public abstract void setCustomView(int resId);

    
Set the icon to display in the 'home' section of the action bar. The action bar will use an icon specified by its style or the activity icon by default. Whether the home section shows an icon or logo is controlled by the display option DISPLAY_USE_LOGO.

Parameters:
resId Resource ID of a drawable to show as an icon.
See also:
setDisplayUseLogoEnabled(boolean)
setDisplayShowHomeEnabled(boolean)
    public abstract void setIcon(int resId);

    
Set the icon to display in the 'home' section of the action bar. The action bar will use an icon specified by its style or the activity icon by default. Whether the home section shows an icon or logo is controlled by the display option DISPLAY_USE_LOGO.

Parameters:
icon Drawable to show as an icon.
See also:
setDisplayUseLogoEnabled(boolean)
setDisplayShowHomeEnabled(boolean)
    public abstract void setIcon(Drawable icon);

    
Set the logo to display in the 'home' section of the action bar. The action bar will use a logo specified by its style or the activity logo by default. Whether the home section shows an icon or logo is controlled by the display option DISPLAY_USE_LOGO.

Parameters:
resId Resource ID of a drawable to show as a logo.
See also:
setDisplayUseLogoEnabled(boolean)
setDisplayShowHomeEnabled(boolean)
    public abstract void setLogo(int resId);

    
Set the logo to display in the 'home' section of the action bar. The action bar will use a logo specified by its style or the activity logo by default. Whether the home section shows an icon or logo is controlled by the display option DISPLAY_USE_LOGO.

Parameters:
logo Drawable to show as a logo.
See also:
setDisplayUseLogoEnabled(boolean)
setDisplayShowHomeEnabled(boolean)
    public abstract void setLogo(Drawable logo);

    
Set the adapter and navigation callback for list navigation mode. The supplied adapter will provide views for the expanded list as well as the currently selected item. (These may be displayed differently.) The supplied OnNavigationListener will alert the application when the user changes the current list selection.

Parameters:
adapter An adapter that will provide views both to display the current navigation selection and populate views within the dropdown navigation menu.
callback An OnNavigationListener that will receive events when the user selects a navigation item.
    public abstract void setListNavigationCallbacks(SpinnerAdapter adapter,
            OnNavigationListener callback);

    
Set the selected navigation item in list or tabbed navigation modes.

Parameters:
position Position of the item to select.
    public abstract void setSelectedNavigationItem(int position);

    
Get the position of the selected navigation item in list or tabbed navigation modes.

Returns:
Position of the selected item.
    public abstract int getSelectedNavigationIndex();

    
Get the number of navigation items present in the current navigation mode.

Returns:
Number of navigation items.
    public abstract int getNavigationItemCount();

    
Set the action bar's title. This will only be displayed if DISPLAY_SHOW_TITLE is set.

Parameters:
title Title to set
See also:
setTitle(int)
setDisplayOptions(int,int)
    public abstract void setTitle(CharSequence title);

    
Set the action bar's title. This will only be displayed if DISPLAY_SHOW_TITLE is set.

Parameters:
resId Resource ID of title string to set
See also:
setTitle(java.lang.CharSequence)
setDisplayOptions(int,int)
    public abstract void setTitle(int resId);

    
Set the action bar's subtitle. This will only be displayed if DISPLAY_SHOW_TITLE is set. Set to null to disable the subtitle entirely.

Parameters:
subtitle Subtitle to set
See also:
setSubtitle(int)
setDisplayOptions(int,int)
    public abstract void setSubtitle(CharSequence subtitle);

    
Set the action bar's subtitle. This will only be displayed if DISPLAY_SHOW_TITLE is set.

Parameters:
resId Resource ID of subtitle string to set
See also:
setSubtitle(java.lang.CharSequence)
setDisplayOptions(int,int)
    public abstract void setSubtitle(int resId);

    
Set display options. This changes all display option bits at once. To change a limited subset of display options, see setDisplayOptions(int,int).

Parameters:
options A combination of the bits defined by the DISPLAY_ constants defined in ActionBar.
    public abstract void setDisplayOptions(int options);

    
Set selected display options. Only the options specified by mask will be changed. To change all display option bits at once, see setDisplayOptions(int).

Example: setDisplayOptions(0, DISPLAY_SHOW_HOME) will disable the DISPLAY_SHOW_HOME option. setDisplayOptions(DISPLAY_SHOW_HOME, DISPLAY_SHOW_HOME | DISPLAY_USE_LOGO) will enable DISPLAY_SHOW_HOME and disable DISPLAY_USE_LOGO.

Parameters:
options A combination of the bits defined by the DISPLAY_ constants defined in ActionBar.
mask A bit mask declaring which display options should be changed.
    public abstract void setDisplayOptions(int optionsint mask);

    
Set whether to display the activity logo rather than the activity icon. A logo is often a wider, more detailed image.

To set several display options at once, see the setDisplayOptions methods.

Parameters:
useLogo true to use the activity logo, false to use the activity icon.
See also:
setDisplayOptions(int)
setDisplayOptions(int,int)
    public abstract void setDisplayUseLogoEnabled(boolean useLogo);

    
Set whether to include the application home affordance in the action bar. Home is presented as either an activity icon or logo.

To set several display options at once, see the setDisplayOptions methods.

Parameters:
showHome true to show home, false otherwise.
See also:
setDisplayOptions(int)
setDisplayOptions(int,int)
    public abstract void setDisplayShowHomeEnabled(boolean showHome);

    
Set whether home should be displayed as an "up" affordance. Set this to true if selecting "home" returns up by a single level in your UI rather than back to the top level or front page.

To set several display options at once, see the setDisplayOptions methods.

Parameters:
showHomeAsUp true to show the user that selecting home will return one level up rather than to the top level of the app.
See also:
setDisplayOptions(int)
setDisplayOptions(int,int)
    public abstract void setDisplayHomeAsUpEnabled(boolean showHomeAsUp);

    
Set whether an activity title/subtitle should be displayed.

To set several display options at once, see the setDisplayOptions methods.

Parameters:
showTitle true to display a title/subtitle if present.
See also:
setDisplayOptions(int)
setDisplayOptions(int,int)
    public abstract void setDisplayShowTitleEnabled(boolean showTitle);

    
Set whether a custom view should be displayed, if set.

To set several display options at once, see the setDisplayOptions methods.

Parameters:
showCustom true if the currently set custom view should be displayed, false otherwise.
See also:
setDisplayOptions(int)
setDisplayOptions(int,int)
    public abstract void setDisplayShowCustomEnabled(boolean showCustom);

    
Set the ActionBar's background. This will be used for the primary action bar.

    public abstract void setBackgroundDrawable(Drawable d);

    
Set the ActionBar's stacked background. This will appear in the second row/stacked bar on some devices and configurations.

Parameters:
d Background drawable for the stacked row
    public void setStackedBackgroundDrawable(Drawable d) { }

    
Set the ActionBar's split background. This will appear in the split action bar containing menu-provided action buttons on some devices and configurations.

You can enable split action bar with android.R.attr.uiOptions

Parameters:
d Background drawable for the split bar
    public void setSplitBackgroundDrawable(Drawable d) { }

    

Returns:
The current custom view.
    public abstract View getCustomView();

    
Returns the current ActionBar title in standard mode. Returns null if getNavigationMode() would not return NAVIGATION_MODE_STANDARD.

Returns:
The current ActionBar title or null.
    public abstract CharSequence getTitle();

    
Returns the current ActionBar subtitle in standard mode. Returns null if getNavigationMode() would not return NAVIGATION_MODE_STANDARD.

Returns:
The current ActionBar subtitle or null.
    public abstract CharSequence getSubtitle();

    
Returns the current navigation mode. The result will be one of:

Returns:
The current navigation mode.
    public abstract int getNavigationMode();

    
Set the current navigation mode.

Parameters:
mode The new mode to set.
See also:
NAVIGATION_MODE_STANDARD
NAVIGATION_MODE_LIST
NAVIGATION_MODE_TABS
    public abstract void setNavigationMode(int mode);

    

Returns:
The current set of display options.
    public abstract int getDisplayOptions();

    
Create and return a new ActionBar.Tab. This tab will not be included in the action bar until it is added.

Very often tabs will be used to switch between Fragment objects. Here is a typical implementation of such tabs:

development/samples/ApiDemos/src/com/example/android/apis/app/FragmentTabs.java complete

    public abstract Tab newTab();

    
Add a tab for use in tabbed navigation mode. The tab will be added at the end of the list. If this is the first tab to be added it will become the selected tab.

Parameters:
tab Tab to add
    public abstract void addTab(Tab tab);

    
Add a tab for use in tabbed navigation mode. The tab will be added at the end of the list.

Parameters:
tab Tab to add
setSelected True if the added tab should become the selected tab.
    public abstract void addTab(Tab tabboolean setSelected);

    
Add a tab for use in tabbed navigation mode. The tab will be inserted at position. If this is the first tab to be added it will become the selected tab.

Parameters:
tab The tab to add
position The new position of the tab
    public abstract void addTab(Tab tabint position);

    
Add a tab for use in tabbed navigation mode. The tab will be insterted at position.

Parameters:
tab The tab to add
position The new position of the tab
setSelected True if the added tab should become the selected tab.
    public abstract void addTab(Tab tabint positionboolean setSelected);

    
Remove a tab from the action bar. If the removed tab was selected it will be deselected and another tab will be selected if present.

Parameters:
tab The tab to remove
    public abstract void removeTab(Tab tab);

    
Remove a tab from the action bar. If the removed tab was selected it will be deselected and another tab will be selected if present.

Parameters:
position Position of the tab to remove
    public abstract void removeTabAt(int position);

    
Remove all tabs from the action bar and deselect the current tab.
    public abstract void removeAllTabs();

    
Select the specified tab. If it is not a child of this action bar it will be added.

Note: If you want to select by index, use setSelectedNavigationItem(int).

Parameters:
tab Tab to select
    public abstract void selectTab(Tab tab);

    
Returns the currently selected tab if in tabbed navigation mode and there is at least one tab present.

Returns:
The currently selected tab or null
    public abstract Tab getSelectedTab();

    
Returns the tab at the specified index.

Parameters:
index Index value in the range 0-get
Returns:
    public abstract Tab getTabAt(int index);

    
Returns the number of tabs currently registered with the action bar.

Returns:
Tab count
    public abstract int getTabCount();

    
Retrieve the current height of the ActionBar.

Returns:
The ActionBar's height
    public abstract int getHeight();

    
Show the ActionBar if it is not currently showing. If the window hosting the ActionBar does not have the feature Window it will resize application content to fit the new space available.
    public abstract void show();

    
Hide the ActionBar if it is currently showing. If the window hosting the ActionBar does not have the feature Window it will resize application content to fit the new space available.
    public abstract void hide();

    

Returns:
true if the ActionBar is showing, false otherwise.
    public abstract boolean isShowing();

    
Add a listener that will respond to menu visibility change events.

Parameters:
listener The new listener to add
    public abstract void addOnMenuVisibilityListener(OnMenuVisibilityListener listener);

    
Remove a menu visibility listener. This listener will no longer receive menu visibility change events.

Parameters:
listener A listener to remove that was previously added
    public abstract void removeOnMenuVisibilityListener(OnMenuVisibilityListener listener);

    
Enable or disable the "home" button in the corner of the action bar. (Note that this is the application home/up affordance on the action bar, not the systemwide home button.)

This defaults to true for packages targeting < API 14. For packages targeting API 14 or greater, the application should call this method to enable interaction with the home/up affordance.

Setting the DISPLAY_HOME_AS_UP display option will automatically enable the home button.

Parameters:
enabled true to enable the home button, false to disable the home button.
    public void setHomeButtonEnabled(boolean enabled) { }

    
Returns a android.content.Context with an appropriate theme for creating views that will appear in the action bar. If you are inflating or instantiating custom views that will appear in an action bar, you should use the Context returned by this method. (This includes adapters used for list navigation mode.) This will ensure that views contrast properly against the action bar.

Returns:
A themed Context for creating views
    public Context getThemedContext() { return null; }

    
Listener interface for ActionBar navigation events.
    public interface OnNavigationListener {
        
This method is called whenever a navigation item in your action bar is selected.

Parameters:
itemPosition Position of the item clicked.
itemId ID of the item clicked.
Returns:
True if the event was handled, false otherwise.
        public boolean onNavigationItemSelected(int itemPositionlong itemId);
    }

    
Listener for receiving events when action bar menus are shown or hidden.
    public interface OnMenuVisibilityListener {
        
Called when an action bar menu is shown or hidden. Applications may want to use this to tune auto-hiding behavior for the action bar or pause/resume video playback, gameplay, or other activity within the main content area.

Parameters:
isVisible True if an action bar menu is now visible, false if no action bar menus are visible.
        public void onMenuVisibilityChanged(boolean isVisible);
    }

    
A tab in the action bar.

Tabs manage the hiding and showing of Fragments.

    public static abstract class Tab {
        
An invalid position for a tab.

See also:
getPosition()
        public static final int INVALID_POSITION = -1;

        
Return the current position of this tab in the action bar.

Returns:
Current position, or INVALID_POSITION if this tab is not currently in the action bar.
        public abstract int getPosition();

        
Return the icon associated with this tab.

Returns:
The tab's icon
        public abstract Drawable getIcon();

        
Return the text of this tab.

Returns:
The tab's text
        public abstract CharSequence getText();

        
Set the icon displayed on this tab.

Parameters:
icon The drawable to use as an icon
Returns:
The current instance for call chaining
        public abstract Tab setIcon(Drawable icon);

        
Set the icon displayed on this tab.

Parameters:
resId Resource ID referring to the drawable to use as an icon
Returns:
The current instance for call chaining
        public abstract Tab setIcon(int resId);

        
Set the text displayed on this tab. Text may be truncated if there is not room to display the entire string.

Parameters:
text The text to display
Returns:
The current instance for call chaining
        public abstract Tab setText(CharSequence text);

        
Set the text displayed on this tab. Text may be truncated if there is not room to display the entire string.

Parameters:
resId A resource ID referring to the text that should be displayed
Returns:
The current instance for call chaining
        public abstract Tab setText(int resId);

        
Set a custom view to be used for this tab. This overrides values set by setText(java.lang.CharSequence) and setIcon(android.graphics.drawable.Drawable).

Parameters:
view Custom view to be used as a tab.
Returns:
The current instance for call chaining
        public abstract Tab setCustomView(View view);

        
Set a custom view to be used for this tab. This overrides values set by setText(java.lang.CharSequence) and setIcon(android.graphics.drawable.Drawable).

Parameters:
layoutResId A layout resource to inflate and use as a custom tab view
Returns:
The current instance for call chaining
        public abstract Tab setCustomView(int layoutResId);

        
Retrieve a previously set custom view for this tab.

Returns:
The custom view set by setCustomView(android.view.View).
        public abstract View getCustomView();

        
Give this Tab an arbitrary object to hold for later use.

Parameters:
obj Object to store
Returns:
The current instance for call chaining
        public abstract Tab setTag(Object obj);

        

Returns:
This Tab's tag object.
        public abstract Object getTag();

        
Set the ActionBar.TabListener that will handle switching to and from this tab. All tabs must have a TabListener set before being added to the ActionBar.

Parameters:
listener Listener to handle tab selection events
Returns:
The current instance for call chaining
        public abstract Tab setTabListener(TabListener listener);

        
Select this tab. Only valid if the tab has been added to the action bar.
        public abstract void select();

        
Set a description of this tab's content for use in accessibility support. If no content description is provided the title will be used.

Parameters:
resId A resource ID referring to the description text
Returns:
The current instance for call chaining
See also:
setContentDescription(java.lang.CharSequence)
getContentDescription()
        public abstract Tab setContentDescription(int resId);

        
Set a description of this tab's content for use in accessibility support. If no content description is provided the title will be used.

Parameters:
contentDesc Description of this tab's content
Returns:
The current instance for call chaining
See also:
setContentDescription(int)
getContentDescription()
        public abstract Tab setContentDescription(CharSequence contentDesc);

        
Gets a brief description of this tab's content for use in accessibility support.

Returns:
Description of this tab's content
See also:
setContentDescription(java.lang.CharSequence)
setContentDescription(int)
        public abstract CharSequence getContentDescription();
    }

    
Callback interface invoked when a tab is focused, unfocused, added, or removed.
    public interface TabListener {
        
Called when a tab enters the selected state.

Parameters:
tab The tab that was selected
ft A android.support.v4.app.FragmentTransaction for queuing fragment operations to execute during a tab switch. The previous tab's unselect and this tab's select will be executed in a single transaction. This FragmentTransaction does not support being added to the back stack.
        public void onTabSelected(Tab tabFragmentTransaction ft);

        
Called when a tab exits the selected state.

Parameters:
tab The tab that was unselected
ft A android.support.v4.app.FragmentTransaction for queuing fragment operations to execute during a tab switch. This tab's unselect and the newly selected tab's select will be executed in a single transaction. This FragmentTransaction does not support being added to the back stack.
        public void onTabUnselected(Tab tabFragmentTransaction ft);

        
Called when a tab that is already selected is chosen again by the user. Some applications may use this action to return to the top level of a category.

Parameters:
tab The tab that was reselected.
ft A android.support.v4.app.FragmentTransaction for queuing fragment operations to execute once this method returns. This FragmentTransaction does not support being added to the back stack.
        public void onTabReselected(Tab tabFragmentTransaction ft);
    }

    
Per-child layout information associated with action bar custom views.

Attr:
ref android.R.styleable#ActionBar_LayoutParams_layout_gravity
    public static class LayoutParams extends MarginLayoutParams {
        
Gravity for the view associated with these LayoutParams.

See also:
android.view.Gravity
        @ViewDebug.ExportedProperty(mapping = {
            @ViewDebug.IntToString(from =  -1,                       to = "NONE"),
            @ViewDebug.IntToString(from = .,        to = "NONE"),
            @ViewDebug.IntToString(from = .,               to = "TOP"),
            @ViewDebug.IntToString(from = .,            to = "BOTTOM"),
            @ViewDebug.IntToString(from = .,              to = "LEFT"),
            @ViewDebug.IntToString(from = .,             to = "RIGHT"),
            @ViewDebug.IntToString(from = .,   to = "CENTER_VERTICAL"),
            @ViewDebug.IntToString(from = .,     to = "FILL_VERTICAL"),
            @ViewDebug.IntToString(from = ., to = "CENTER_HORIZONTAL"),
            @ViewDebug.IntToString(from = .,   to = "FILL_HORIZONTAL"),
            @ViewDebug.IntToString(from = .,            to = "CENTER"),
            @ViewDebug.IntToString(from = .,              to = "FILL")
        })
        public int gravity = -1;
        public LayoutParams(Context cAttributeSet attrs) {
            super(cattrs);
        }
        public LayoutParams(int widthint height) {
            super(widthheight);
            this. = . | .;
        }
        public LayoutParams(int widthint heightint gravity) {
            super(widthheight);
            this. = gravity;
        }
        public LayoutParams(int gravity) {
            this(gravity);
        }
        public LayoutParams(LayoutParams source) {
            super(source);
            this. = source.gravity;
        }
        public LayoutParams(ViewGroup.LayoutParams source) {
            super(source);
        }
    }
New to GrepCode? Check out our FAQ X