Jak użyć ViewPager z adapterem FragmentStatePagerAdapter?

0

Witajcie,

mam duże problemy ze zrozumieniem jak podmieniać dane we Fragmencie używając ViewPager z FragmentStatePagerAadpter. Czy ktoś może wyjaśnić jak napisać taki kod? Lub może podesłać link wyjaśniający dobrze ten temat?

Z góry dziękuję.

0

https://guides.codepath.com/a[...]ger-with-FragmentPagerAdapter

tutaj masz m.in. opisana wymiane fragmentow, a jezeli chodzi o aktualizacje danych we fragmencie to musisz dodac jakas metode updateData(YourDataObject data) i wywolac ja z ViewPagera
no chyba ze to ma byc tylko wewnatrz fragmentu np. na onClick to nie musi interakcja wychodzic poza fragment

napisz dokladnie co masz, co chcesz zrobic, jak i kiedy ma sie aktualizowac. wklej kawalek kodu moze

0

Witaj,
dziękuje za odpowiedź. A więc mam ViewPager oraz błędnie utworzony fragmentList ponieważ po pierwsze jest tych fragmentów aż 40. No i także bez sensu bo mam utworzonych aż 40 osobnych Fragment.java klas :(

Muszę skasować te wszystkie klasy oraz tą całą ArrayList i jakoś inaczej ładować te dane do fragmentu po swipe? Co drugi frament dane są inne.

Zupełnie nie wiem jak się za to zabrać.

Jeśli potrzebujesz jeszcze innej części kodu, proszę daj znać.

Z góry dziękuje.

 viewPager = (ViewPager) findViewById(R.id.fragment_container);

        fragmentList = new ArrayList<>();
        fragmentList.add(new Fragment1());
        fragmentList.add(new Fragment2());
        fragmentList.add(new Fragment3());
        fragmentList.add(new Fragment4());
        // itd...

        PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager(), fragmentList);
        viewPager.setAdapter(adapter);

klasa PagerAdapter wygląda tak:

public class PagerAdapter extends FragmentStatePagerAdapter {                             

    List<Fragment> fragmentList;                                                    

    public PagerAdapter(FragmentManager fm, List<Fragment> fragmentList) {          
        super(fm);                                                                  
        this.fragmentList = fragmentList;                                           
    }

    @Override
    public Fragment getItem(int position) {                                         
        return fragmentList.get(position);                                          
    }

    @Override
    public int getCount() {                                                         
        return fragmentList.size();                                                 
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0