package org.rudirect.android.adapter;
import android.app.Fragment;
import android.app.FragmentManager;
import android.support.v13.app.FragmentPagerAdapter;
import android.util.SparseArray;
import android.view.ViewGroup;
import org.rudirect.android.fragment.DirectionsFragment;
import org.rudirect.android.fragment.RoutesFragment;
public class MainPagerAdapter extends FragmentPagerAdapter {
private static final String[] TITLES = {"Routes", "Directions"};
private static final int NUM_OF_ITEMS = TITLES.length;
private static SparseArray<Fragment> registeredFragments = new SparseArray<>();
public MainPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return NUM_OF_ITEMS;
}
// Returns the fragment for the each position in the ViewPager
@Override
public Fragment getItem(int position) {
if (position == 0) {
return new RoutesFragment();
} else {
return new DirectionsFragment();
}
}
@Override
public String getPageTitle(int position) {
return TITLES[position];
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Fragment fragment = (Fragment) super.instantiateItem(container, position);
registeredFragments.put(position, fragment);
return fragment;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
registeredFragments.remove(position);
super.destroyItem(container, position, object);
}
public static Fragment getRegisteredFragment(int position) {
return registeredFragments.get(position);
}
}