Skip to main content

ANDROID - Adding ActionBar Navigation Tabs




Note: if you are develop App < 3.0 Android OS then use ActionBarSherlock  support library.


ActionBarSherlock is an extension of the support library designed to facilitate the use of the action bar design pattern across all versions of Android with a single API.


Create new Android Project : in Main Activity



 package com.AlarmManager;  
 import android.os.Bundle;  
 import android.view.View;  
 import com.actionbarsherlock.app.ActionBar;  
 import com.actionbarsherlock.app.ActionBar.Tab;  
 import com.actionbarsherlock.app.SherlockFragmentActivity;  
 public class AlarmManagerActivity extends SherlockFragmentActivity {  
      public static String ACTIVE_TAB = "activeTab";  
      /** Called when the activity is first created. */  
      @Override  
      public void onCreate(Bundle savedInstanceState) {  
           setTheme(R.style.Theme_Sherlock_Light_DarkActionBar);  
           super.onCreate(savedInstanceState);  
           // setContentView(R.layout.main);  
           final ActionBar actionBar = getSupportActionBar();  
           actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);  
           // add tabs  
           Tab tab1 = actionBar  
                     .newTab()  
                     .setText("Tab1")  
                     .setTabListener(  
                               new TabListener<TabFragment>(this, "tab1",  
                                         TabFragment.class));  
           actionBar.addTab(tab1);  
           Tab tab2 = actionBar  
                     .newTab()  
                     .setText("Tab2")  
                     .setTabListener(  
                               new TabListener<TabFragment1>(this, "tab2",  
                                         TabFragment1.class));  
           actionBar.addTab(tab2);  
           // check if there is a saved state to select active tab  
           if (savedInstanceState != null) {  
                getSupportActionBar().setSelectedNavigationItem(  
                          savedInstanceState.getInt(ACTIVE_TAB));  
           }  
      }  
      @Override  
      protected void onSaveInstanceState(Bundle outState) {  
           // save active tab  
           outState.putInt(ACTIVE_TAB, getSupportActionBar()  
                     .getSelectedNavigationIndex());  
           super.onSaveInstanceState(outState);  
      }  
 }  

Create TabListener Class:

 package com.AlarmManager;  
 import android.app.Activity;  
 import android.support.v4.app.Fragment;  
 import android.support.v4.app.FragmentTransaction;  
 import com.actionbarsherlock.app.ActionBar;  
 import com.actionbarsherlock.app.ActionBar.Tab;  
 public class TabListener<T extends Fragment> implements ActionBar.TabListener {  
   private Fragment mFragment;  
   private final Activity mActivity;  
   private final String mTag;  
   private final Class<T> mClass;  
   /** Constructor used each time a new tab is created.  
    * @param activity The host Activity, used to instantiate the fragment  
    * @param tag The identifier tag for the fragment  
    * @param clz The fragment's Class, used to instantiate the fragment  
    */  
   public TabListener(Activity activity, String tag, Class<T> clz) {  
     mActivity = activity;  
     mTag = tag;  
     mClass = clz;  
   }  
   /* The following are each of the ActionBar.TabListener callbacks */  
   public void onTabSelected(Tab tab, FragmentTransaction ft) {  
     // Check if the fragment is already initialized  
     if (mFragment == null) {  
       // If not, instantiate and add it to the activity  
       mFragment = Fragment.instantiate(mActivity, mClass.getName());  
       ft.add(android.R.id.content, mFragment, mTag);  
     } else {  
       // If it exists, simply attach it in order to show it  
       ft.attach(mFragment);  
     }  
   }  
   public void onTabUnselected(Tab tab, FragmentTransaction ft) {  
     if (mFragment != null) {  
       // Detach the fragment, because another one is being attached  
       ft.detach(mFragment);  
     }  
   }  
   public void onTabReselected(Tab tab, FragmentTransaction ft) {  
     // User selected the already selected tab. Usually do nothing.  
   }  
 }  

Create TabFragment class:

 package com.AlarmManager;  
 import android.os.Bundle;  
 import android.view.LayoutInflater;  
 import android.view.View;  
 import android.view.ViewGroup;  
 import com.actionbarsherlock.app.SherlockFragment;  
 public class TabFragment extends SherlockFragment {  
      @Override  
      public View onCreateView(LayoutInflater inflater, ViewGroup container,  
                Bundle savedInstanceState) {  
           // Inflate the layout for this fragment  
           View view = inflater  
                     .inflate(R.layout.main, container, false);  
           // do your view initialization here  
           return view;  
      }  
 }  

main.xml layout file:

 <?xml version="1.0" encoding="utf-8"?>  
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
   android:layout_width="fill_parent"  
   android:layout_height="fill_parent"  
   android:gravity="center"  
   android:orientation="vertical" >  
   <TextView  
     android:id="@+id/textView1"  
     android:layout_width="match_parent"  
     android:layout_height="wrap_content"  
     android:gravity="center"  
     android:text="Tab1"  
     android:textAppearance="?android:attr/textAppearanceLarge" />  
   <Button  
     android:id="@+id/button1"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:text="Button" >  
   </Button>  
 </LinearLayout>  

Same as TabFragment class i have used TabFragment1 class with two button.

Enjoy Coding..

Comments

  1. Hello sir

    can u tel me how to add libraries

    ReplyDelete
  2. I already have the support libraries installed and i have the "libs" folder in the project

    But stil i'm getting errors...

    ReplyDelete
  3. Please tell me what error you get..

    Please do this:

    Select Java Build Path, and click the Libraries tab.
    Click Add External JARs, browse to /extras/android/support/v4/android-support-v4.jar. Click OK
    On the Order and Export tab, select android-support-v4.jar.
    Click OK.

    if you already done this then check if your sharelock library have android-support-v4.jar then delete it from your project not from sharelock library.

    ReplyDelete

Post a Comment

Popular posts from this blog

Connecting mysql Database in ANDROID using PHP & JSON

 To implement this tutorial you should have basic knowledge of how to run PHP script and start server.  If we talk about client-server architecture, client is Android device and in server side there is a combination of PHP Script and MySQL. In short, PHP Script sits in middle as shown in image. Lets suppose that we have a MySQL database named Employee, and a table int created, with the following SQL: CREATE TABLE `employee` (   `emp_id` int(11) NOT NULL auto_increment,   `emp_name` varchar(100) NOT NULL,   PRIMARY KEY  (`emp_id`) ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; The PHP code will be very simple: Now Create Android Project :  The Android part is only a bit more complicated: -use a HttpPost to get the data -convert response to string -parse JSON data in to List In Your First Activity : O/P :

Multi-Selection ListView ANDROID with CheckBox PART-2

Check Below Code : mainActivity.java package com.example.listviewcheckbox; import java.util.ArrayList; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.CheckBox; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private ListView listview; ArrayList<String> items = new ArrayList<String>(); private int count; private boolean[] thumbnailsselection; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(...

Android - Google MAP V2 PART 1

Download Full Code  of PART-1 , 2 , 3 , 4 Download and configure Google Play Services Library in Eclipse Google Map for Android is now integrated with Google Play Services. So we need to set up Google Play Service Library for developing Google Map application in Android. Get the API key for Google Maps v2: Linux  :  For any other OS use this :  keytool -list -v -alias androiddebugkey \ -keystore <path_to_debug_keystore>debug.keystore \ -storepass android -keypass android Register with the Google APIs Console :    Google APIs Console  Select here the  Services  entry: Activate the  Google Maps Android API v2 . Register your application via its package in this console together with the SHA-1 fingerprint of your signature key. Click on Create new Android Key.. Add you SHA-1 and your package name in to box like example given in alert box. Support library...