Android Open Source - android-compat-actionbar Action Bar Helper






From Project

Back to project page android-compat-actionbar.

License

The source code is released under:

Apache License

If you think the Android project android-compat-actionbar listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright 2011 The Android Open Source Project
 */*  w w w.  j a v a 2  s. co  m*/
 * 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 android.support.v4.actionbar;

import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;

/**
 * An abstract class that handles some common action bar-related functionality in the app. This class provides
 * functionality useful for both phones and tablets, and does not require any Android 3.0-specific features, although it
 * uses them if available. Two implementations of this class are {@link ActionBarHelperBase} for a pre-Honeycomb version
 * of the action bar, and {@link ActionBarHelperHoneycomb}, which uses the built-in ActionBar features in Android 3.0
 * and later.
 */
public abstract class ActionBarHelper
{
        protected Activity mActivity;

        /**
         * Factory method for creating {@link ActionBarHelper} objects for a given activity. Depending on which device
         * the app is running, either a basic helper or Honeycomb-specific helper will be returned.
         */
        public static ActionBarHelper createInstance ( Activity activity )
        {
                if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH )
                {
                        return new ActionBarHelperICS ( activity );
                }
                else if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB )
                {
                        return new ActionBarHelperHoneycomb ( activity );
                }
                else
                {
                        return new ActionBarHelperBase ( activity );
                }
        }

        protected ActionBarHelper ( Activity activity )
        {
                mActivity = activity;
        }

        /**
         * Action bar helper code to be run in {@link Activity#onCreate(android.os.Bundle)}.
         */
        public void onCreate ( Bundle savedInstanceState )
        {
        }

        /**
         * Action bar helper code to be run in {@link Activity#onPostCreate(android.os.Bundle)}.
         */
        public void onPostCreate ( Bundle savedInstanceState )
        {
        }

        /**
         * Action bar helper code to be run in {@link Activity#onCreateOptionsMenu(android.view.Menu)}. NOTE: Setting
         * the visibility of menu items in <em>menu</em> is not currently supported.
         */
        public boolean onCreateOptionsMenu ( Menu menu )
        {
                return true;
        }

        /**
         * Action bar helper code to be run in {@link Activity#onTitleChanged(CharSequence, int)}.
         */
        public void onTitleChanged ( CharSequence title, int color )
        {
        }

        /**
         * Sets the indeterminate loading state of the item with ID {@link R.id.menu_refresh}. (where the item ID was
         * menu_refresh).
         */
        public abstract void setRefreshActionItemState ( boolean refreshing );

        /**
         * Returns a {@link MenuInflater} for use when inflating menus. The implementation of this method in
         * {@link ActionBarHelperBase} returns a wrapped menu inflater that can read action bar metadata from a menu
         * resource pre-Honeycomb.
         */
        public MenuInflater getMenuInflater ( MenuInflater superMenuInflater )
        {
                return superMenuInflater;
        }
}




Java Source Code List

android.support.v4.actionbar.ActionBarActivity.java
android.support.v4.actionbar.ActionBarFragmentActivity.java
android.support.v4.actionbar.ActionBarHelperBase.java
android.support.v4.actionbar.ActionBarHelperHoneycomb.java
android.support.v4.actionbar.ActionBarHelperICS.java
android.support.v4.actionbar.ActionBarHelper.java
android.support.v4.actionbar.ActionBarListActivity.java
android.support.v4.actionbar.SimpleMenuItem.java
android.support.v4.actionbar.SimpleMenu.java