I store information if user is logged in SharedPreferences. In my ViewPager adapter I want to check if userIsLoggedIn. Depending on that I will display different fragments. My question is: in order to get data from sharedPreferences I need a context. How do I get it from my ViewPager adapter class? Thank you.
public class ViewPageAdapter extends FragmentPagerAdapter {
private static int NUM_ITEMS = 3;
private FragmentManager mFragmentManager;
public ViewPageAdapter(@NonNull FragmentManager fm) {
super(fm);
mFragmentManager = fm;
}
@NonNull
@Override
public Fragment getItem(int position) {
switch (position){
case 0: return new FragmentInsta();
case 1: return new FragmentList();
case 2: return new FragmentHostUnlogged();
default:
return new FragmentList();
}
}
@Override
public int getCount() {
return NUM_ITEMS;
}
@Override
public int getItemPosition(@NonNull Object object) {
if (object instanceof FragmentHostUnlogged)
return POSITION_NONE;
return POSITION_UNCHANGED;
}
}
You should use FragmentStatePagerAdapter
. FragmentPagerAdapter is deprecated.
class ViewPageAdapter extends FragmentStatePagerAdapter {
Context context;
ViewPagerAdapter(FragmentManager manager,Context c) {
super(manager,BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
context=c;
}
Read Context from official guideline.
Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system.
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(), getApplicationContext());