Android Open Source - AndroidTwitterApp Fragment Tab Listener






From Project

Back to project page AndroidTwitterApp.

License

The source code is released under:

MIT License

If you think the Android project AndroidTwitterApp 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

package net.julienlecomte.apps.basictwitter.listeners;
/*  w  ww  .ja v a 2  s .  c  o  m*/
import android.app.ActionBar.Tab;
import android.app.ActionBar.TabListener;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;

public class FragmentTabListener<T extends Fragment> implements TabListener {
    private Fragment mFragment;
  private final FragmentActivity mActivity;
  private final String mTag;
  private final Class<T> mClass;
  private final int mfragmentContainerId;

    // This version defaults to replacing the entire activity content area
    // new FragmentTabListener<SomeFragment>(this, "first", SomeFragment.class))
  public FragmentTabListener(FragmentActivity activity, String tag, Class<T> clz) {
    mActivity = activity;
    mTag = tag;
    mClass = clz;
    mfragmentContainerId = android.R.id.content;
  }

    // This version supports specifying the container to replace with fragment content
    // new FragmentTabListener<SomeFragment>(R.id.flContent, this, "first", SomeFragment.class))
  public FragmentTabListener(int fragmentContainerId, FragmentActivity activity, 
            String tag, Class<T> clz) {
    mActivity = activity;
    mTag = tag;
    mClass = clz;
    mfragmentContainerId = fragmentContainerId;
  }

  /* The following are each of the ActionBar.TabListener callbacks */

  public void onTabSelected(Tab tab, android.app.FragmentTransaction ft) {
    FragmentTransaction sft = mActivity.getSupportFragmentManager().beginTransaction();
    // 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());
      sft.add(mfragmentContainerId, mFragment, mTag);
    } else {
      // If it exists, simply attach it in order to show it
      sft.attach(mFragment);
    }
    sft.commit();
  }

  public void onTabUnselected(Tab tab, android.app.FragmentTransaction ft) {
    FragmentTransaction sft = mActivity.getSupportFragmentManager().beginTransaction();
    if (mFragment != null) {
      // Detach the fragment, because another one is being attached
      sft.detach(mFragment);
    }
    sft.commit();
  }

  public void onTabReselected(Tab tab, android.app.FragmentTransaction ft) {
    // User selected the already selected tab. Usually do nothing.
  }

  public Fragment getActiveFragment() {
    return mFragment;
  }
}




Java Source Code List

net.julienlecomte.apps.basictwitter.ComposeActivity.java
net.julienlecomte.apps.basictwitter.EndlessScrollListener.java
net.julienlecomte.apps.basictwitter.LoginActivity.java
net.julienlecomte.apps.basictwitter.ProfileActivity.java
net.julienlecomte.apps.basictwitter.TimelineActivity.java
net.julienlecomte.apps.basictwitter.TweetArrayAdapter.java
net.julienlecomte.apps.basictwitter.TwitterApp.java
net.julienlecomte.apps.basictwitter.TwitterClient.java
net.julienlecomte.apps.basictwitter.fragments.HomeTimelineFragment.java
net.julienlecomte.apps.basictwitter.fragments.MentionsTimelineFragment.java
net.julienlecomte.apps.basictwitter.fragments.TweetsListFragment.java
net.julienlecomte.apps.basictwitter.fragments.UserTimelineFragment.java
net.julienlecomte.apps.basictwitter.listeners.FragmentTabListener.java
net.julienlecomte.apps.basictwitter.models.Tweet.java
net.julienlecomte.apps.basictwitter.models.User.java