Update data in ListFragment as part of ViewPager

后端 未结 10 1986
一整个雨季
一整个雨季 2020-11-22 07:55

I\'m using the v4 compatibility ViewPager in Android. My FragmentActivity has a bunch of data which is to be displayed in different ways on different pages in my ViewPager.

10条回答
  •  醉梦人生
    2020-11-22 08:21

    Try to record the tag each time a Fragement is instantiated.

    public class MPagerAdapter extends FragmentPagerAdapter {
        private Map mFragmentTags;
        private FragmentManager mFragmentManager;
    
        public MPagerAdapter(FragmentManager fm) {
            super(fm);
            mFragmentManager = fm;
            mFragmentTags = new HashMap();
        }
    
        @Override
        public int getCount() {
            return 10;
        }
    
        @Override
        public Fragment getItem(int position) {
            return Fragment.instantiate(mContext, AFragment.class.getName(), null);
        }
    
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            Object obj = super.instantiateItem(container, position);
            if (obj instanceof Fragment) {
                // record the fragment tag here.
                Fragment f = (Fragment) obj;
                String tag = f.getTag();
                mFragmentTags.put(position, tag);
            }
            return obj;
        }
    
        public Fragment getFragment(int position) {
            String tag = mFragmentTags.get(position);
            if (tag == null)
                return null;
            return mFragmentManager.findFragmentByTag(tag);
        }
    }
    

提交回复
热议问题