package cn.zhaiyifan.github.ui; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.view.ViewGroup; import java.util.List; import cn.zhaiyifan.github.ui.base.FragmentProvider; public class PagerFragmentAdapter extends FragmentStatePagerAdapter implements FragmentProvider { private List<Fragment> mFragments; private List<String> mTitles; private Fragment selected; public PagerFragmentAdapter(FragmentManager fm, List<Fragment> fragments, List<String> titles) { super(fm); mFragments = fragments; mTitles = titles; } @Override public void setPrimaryItem(ViewGroup container, int position, Object object) { super.setPrimaryItem(container, position, object); boolean changed = false; if (object instanceof Fragment) { changed = object != selected; selected = (Fragment) object; } else { changed = object != null; selected = null; } } @Override public Fragment getItem(int position) { return mFragments.get(position); } @Override public int getCount() { return mFragments.size(); } @Override public CharSequence getPageTitle(int position) { return mTitles.get(position); } @Override public Fragment getSelected() { return selected; } }