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;
}

}

你应该使用 FragmentStatePagerAdapterFragmentPagerAdapter 已弃用。

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());