Android fragments 基于用户模式的不同Android ViewPager

Android fragments 基于用户模式的不同Android ViewPager,android-fragments,android-viewpager,Android Fragments,Android Viewpager,我现在很困惑如何根据所选的用户模式通过ViewPager显示一组不同的选项卡。如果我不更改用户模式,选项卡/片段/ViewPager将按预期运行。如果我更改usermode(在ViewPager中使用不同的适配器),则会显示正确数量的选项卡,但每个选项卡中的片段不会正确更新。下面是代码。提前感谢您的建议 在简历上使用所有魔法。onCreate是正常的布局设置。 // ------------------------------------------------- @Override publi

我现在很困惑如何根据所选的用户模式通过ViewPager显示一组不同的选项卡。如果我不更改用户模式,选项卡/片段/ViewPager将按预期运行。如果我更改usermode(在ViewPager中使用不同的适配器),则会显示正确数量的选项卡,但每个选项卡中的片段不会正确更新。下面是代码。提前感谢您的建议

在简历上使用所有魔法。onCreate是正常的布局设置。

// -------------------------------------------------
@Override
public void onResume() {
    super.onResume();
    if(isActivityForResult){
        return;
    }

    if (PreferenceManager.getDefaultSharedPreferences(getActivity()).getString("userMode", "").equalsIgnoreCase("buyer")) {
        TextView title = (TextView) rootView.findViewById(R.id.mfm_main_header_title);
        title.setText(R.string.buyer_main_fragment_title);
        adapter = new BuyerSectionsPagerAdapter(getChildFragmentManager());

    } else if (PreferenceManager.getDefaultSharedPreferences(getActivity()).getString("userMode", "").equalsIgnoreCase("seller")) {
        TextView title = (TextView) rootView.findViewById(R.id.mfm_main_header_title);
        title.setText(R.string.seller_main_fragment_title);
        adapter = new SellerSectionsPagerAdapter(getChildFragmentManager());
    }

    setUpViewTabs(adapter);
    setNavigationDrawer();
}


// Set up tabs for either buyer or seller perspectives
// -------------------------------------------------
public void setUpViewTabs(PagerAdapter adapter) {

    // Initialize the ViewPager and set an adapter
    ViewPager pager = (ViewPager) rootView.findViewById(R.id.pager);
    pager.setAdapter(adapter);

    // Bind the tabs to the ViewPager
    PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) rootView.findViewById(R.id.tabs);
    tabs.setTextColor(getResources().getColor(R.color.themeCommonBGColor));
    tabs.setIndicatorColor(getResources().getColor(R.color.themeYellow));
    tabs.setIndicatorHeight(4);
    tabs.setTabBackground(R.drawable.tab_background_statelist);
    tabs.setTabPaddingLeftRight(0);
    tabs.setAllCaps(true);
    tabs.setShouldExpand(true);
    tabs.setViewPager(pager);
}


// -------------------------------------------------
// -------------------------------------------------
public class BuyerSectionsPagerAdapter extends FragmentPagerAdapter {

    public BuyerSectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    // -------------------------------------------------
    @Override
    public Fragment getItem(int position) {

        switch (position) {

            case 0: {
                return BuyerMyFarmersRootFragment.newInstance();
            }
            case 1: {
                return BuyerMyOrdersFragment.newInstance();
            }

            default: {
                return null;
            }
        }
    }

    // -------------------------------------------------
    @Override
    public int getCount() {
        return 2;

    }

    // -------------------------------------------------
    @Override
    public CharSequence getPageTitle(int position) {
        Locale l = Locale.getDefault();
        switch (position) {
            case 0: {
                return getString(R.string.buyer_fragment_my_farmers)
                        .toUpperCase(l);
            }
            case 1: {
                return getString(R.string.buyer_fragment_my_orders)
                        .toUpperCase(l);
            }

            default: {
                return null;
            }
        }

    }

}

// -------------------------------------------------
// -------------------------------------------------
public class SellerSectionsPagerAdapter extends FragmentPagerAdapter {

    // -------------------------------------------------
    public SellerSectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    // -------------------------------------------------
    @Override
    public Fragment getItem(int position) {

        switch (position) {

            case 0: {
                return SellerOrdersRootFragment.newInstance();
            }
            case 1: {
                return SellerProductsRootFragment.newInstance();
            }
            case 2: {
                return SellerCustomersRootFragment.newInstance();
            }
            default:
                return null;
        }

    }

    // -------------------------------------------------
    @Override
    public int getCount() {
        return 3;

    }

    // -------------------------------------------------
    @Override
    public CharSequence getPageTitle(int position) {

        switch (position) {
            case 0:
                return getString(R.string.seller_fragment_title_orders);
            case 1:
                return getString(R.string.seller_fragment_title_products);
            case 2:
                return getString(R.string.seller_fragment_title_customers);
        }
        return null;
    }

}