У меня есть активность, которая использует viewpager и фрагменты с вкладками.Я передаю данные из действия во фрагменты, но они всегда показывают неправильные данные для определенных вкладок.У меня есть один фрагмент, который должен запрашивать данные в зависимости от аргументов, передаваемых через пакет.
private Fragment createFragment(String title){
HomeFragment fragment = new HomeFragment();
Bundle bundle = new Bundle();
bundle.putString("category",title);
fragment.setArguments(bundle);
return fragment;
}
Затем я передаю эту функцию на просмотрщик так:
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(createFragment("Item 1"),"Tab 1");
adapter.addFragment(createFragment("Item 2"),"Tab 2");
adapter.addFragment(createFragment("Item 3"),"Tab 3");
adapter.addFragment(createFragment("Item 4"),"Tab 4");
adapter.addFragment(createFragment("Item 5"),"Tab 5");
Наконец яполучить аргумент следующим образом:
String argument = this.getArguments().getString("category");
проблема в том, что когда я на вкладке 1, он возвращает элемент 2. Но когда я посещаю все вкладки, он начинает возвращать правильный элемент, т.е. элемент 1, когдана вкладке 1.
Где проблема?
РЕДАКТИРОВАТЬ:
ViewPagerAdapter:
public class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> fragList = new ArrayList<>();
private final List<String> titleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return fragList.get(position);;
}
public void addFragment(Fragment fragment, String title) {
fragList.add(fragment);
titleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return titleList.get(position);
}
@Override
public int getCount() {
return fragList.size();
}
}