package com.aptoide.amethyst.adapter; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.util.SparseArray; import android.view.ViewGroup; import com.aptoide.amethyst.Aptoide; import com.aptoide.amethyst.R; import com.aptoide.amethyst.fragments.main.CommunityFragment; import com.aptoide.amethyst.fragments.main.DownloadFragment; import com.aptoide.amethyst.fragments.main.FragmentSocialTimeline; import com.aptoide.amethyst.fragments.main.HomeFragment; import com.aptoide.amethyst.fragments.main.StoresFragment; import com.aptoide.amethyst.fragments.main.UpdatesFragment; /** * Created by rmateus on 02/06/15. */ public class MainPagerAdapter extends FragmentStatePagerAdapter { private static int NUM_ITEMS = 6; private SparseArray<Fragment> fragmentSparseArray = new SparseArray<>(); public MainPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { switch (position) { case 0: return HomeFragment.newInstance(); case 1: return CommunityFragment.newInstance(); case 2: return StoresFragment.newInstance(); case 3: return UpdatesFragment.newInstance(); case 4: return FragmentSocialTimeline.newInstance(); case 5: return DownloadFragment.newInstance(); } return null; } @Override public int getCount() { return NUM_ITEMS; } @Override public CharSequence getPageTitle(int position) { switch (position) { case 0: return Aptoide.getContext().getString(R.string.home_title); case 1: return Aptoide.getContext().getString(R.string.community); case 2: return Aptoide.getContext().getString(R.string.stores); case 3: return Aptoide.getContext().getString(R.string.updates); case 4: return Aptoide.getContext().getString(R.string.social_timeline); case 5: return Aptoide.getContext().getString(R.string.downloads); } return null; } // Register the fragment when the item is instantiated @Override public Object instantiateItem(ViewGroup container, int position) { Fragment fragment = (Fragment) super.instantiateItem(container, position); fragmentSparseArray.put(position, fragment); return fragment; } // Unregister when the item is inactive @Override public void destroyItem(ViewGroup container, int position, Object object) { fragmentSparseArray.remove(position); super.destroyItem(container, position, object); } }