ViewPager 中的上下文
Context in ViewPager
如果用户登录到 SharedPreferences,我会存储信息。
在我的 ViewPager 适配器中,我想检查 userIsLoggedIn。视情况而定,我将显示不同的片段。
我的问题是:为了从 sharedPreferences 获取数据,我需要一个上下文。如何从我的 ViewPager 适配器 class 获取它?
谢谢。
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;
}
}
你应该使用 FragmentStatePagerAdapter
。 FragmentPagerAdapter 已弃用。
class ViewPageAdapter extends FragmentStatePagerAdapter {
Context context;
ViewPagerAdapter(FragmentManager manager,Context c) {
super(manager,BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
context=c;
}
阅读官方指南Context。
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());
如果用户登录到 SharedPreferences,我会存储信息。 在我的 ViewPager 适配器中,我想检查 userIsLoggedIn。视情况而定,我将显示不同的片段。 我的问题是:为了从 sharedPreferences 获取数据,我需要一个上下文。如何从我的 ViewPager 适配器 class 获取它? 谢谢。
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;
}
}
你应该使用 FragmentStatePagerAdapter
。 FragmentPagerAdapter 已弃用。
class ViewPageAdapter extends FragmentStatePagerAdapter {
Context context;
ViewPagerAdapter(FragmentManager manager,Context c) {
super(manager,BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
context=c;
}
阅读官方指南Context。
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());