【问题标题】:Context in ViewPagerViewPager 中的上下文
【发布时间】:2020-04-15 17:01:00
【问题描述】:

如果用户登录 SharedPreferences,我会存储信息。 在我的 ViewPager 适配器中,我想检查 userIsLoggedIn。根据这一点,我将显示不同的片段。 我的问题是:为了从 sharedPreferences 获取数据,我需要一个上下文。如何从我的 ViewPager 适配器类中获取它? 谢谢。

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

}

【问题讨论】:

    标签: java android android-viewpager sharedpreferences android-context


    【解决方案1】:

    您应该使用 FragmentStatePagerAdapterFragmentPagerAdapter 已弃用。

    class ViewPageAdapter extends FragmentStatePagerAdapter {
    
             Context context; 
    
             ViewPagerAdapter(FragmentManager manager,Context c) {
                super(manager,BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
                context=c;
            }
    

    阅读官方指南中的Context

    有关应用程序环境的全局信息的接口。这 是一个抽象类,其实现由 Android 提供 系统。

    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(), getApplicationContext());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-05
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多