Mixed Fragment Types in Tab Listener
===

I have a tab listener based on the documentation code google provided and the sherlock action bar class.

I was wanting to have two of my tabs to use a ListFragment class and one to use a custom GridFragment class.

However the tab listener will only except one type at a time, would I need to just create a standard fragment and put a list view or grid view in it ? or would I need to create a separate tab listener for each ? or is there a way for a tab listener to except any type of fragment, standard, list or grid as long as it inherits from the fragment class.

	package com.NYXDigital.LookBunnyFind;
	
	import android.app.Activity;
	import android.support.v4.app.FragmentTransaction;
	
	import com.actionbarsherlock.app.ActionBar;
	import com.actionbarsherlock.app.ActionBar.Tab;
	import com.actionbarsherlock.app.SherlockFragment;
	
	
	
	public class TabListener<T extends SherlockFragment> implements ActionBar.TabListener {
		private SherlockFragment 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 = (SherlockFragment)SherlockFragment.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.
	    }
	}