Stwórz klasę danych do ładowania do fragmentu. Jeśli fragmenty mają layouty różnego typu wtedy ta klasa powinna również posiadać informacje o tym.
class MyData implements Parcelable{
//potrzebne pola
private int resImageId;
private int resStringId;
....
}
Zmodyfikuj fragment tak by można w nim używać wcześniej przygotowanej klasy:
public class MyDataFragment extends Fragment {
private MyData item;
public static MyDataFragment newInstance(MyData item) {
MyDataFragment f = new MyDataFragment();
Bundle args = new Bundle();
args.putParcelable("item", item);
f.setArguments(args);
return f;
}
public void onCreate(Bundle saved){
item= getArguments().getParcelable("item");//tutaj masz dane które możesz pokazać w widoku w metodzie oncreateview
....
}
....
}
W adapterze zrób:
public static class MyAdapter extends FragmentStatePagerAdapter {
List<MyData> items = new ArrayList()<>;
public MyAdapter(FragmentManager fm) {
super(fm);
items.add(new MyData(R.drawable.my_image_page_1,R.string.my_title_page_1));
items.add(new MyData(R.drawable.my_image_page_2,R.string.my_title_page_2));
items.add(new MyData(R.drawable.my_image_page_3,R.string.my_title_page_3));
items.add(new MyData(R.drawable.my_image_page_4,R.string.my_title_page_4));
items.add(new MyData(R.drawable.my_image_page_5,R.string.my_title_page_5));
....
items.add(new MyData(R.drawable.my_image_page_40,R.string.my_title_page_40));
}
@Override
public int getCount() {
return items.size();
}
@Override
public Fragment getItem(int position) {
return MyDataFragment.newInstance(items.get(position));
}
}
To wszystko 🙂