Last active
August 29, 2015 14:02
-
-
Save imallan/ed3eaab886af671c7bbd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static 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. | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment