package net.coding.program.common; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; /** * Created by chaochen on 14/12/31. */ public abstract class SaveFragmentPagerAdapter extends FragmentStatePagerAdapter { private List<WeakReference<Fragment>> mList = new ArrayList<>(); public List<WeakReference<Fragment>> getFragments() { for (int i = mList.size() - 1; i >= 0; --i) { if (mList.get(i).get() == null) { mList.remove(i); } } return mList; } protected void saveFragment(Fragment fragment) { if (fragment == null) { return; } for (WeakReference<Fragment> item : mList) { if (item.get() == fragment) { return; } } mList.add(new WeakReference(fragment)); } protected SaveFragmentPagerAdapter(FragmentManager fm) { super(fm); } }