У меня есть список продуктов в представлении переработчика. После нажатия на элемент вы перейдете ко второму действию, чтобы показать больше информации, связанной с этим продуктом. Я пытаюсь реализовать ViewPager. следовал учебнику из CodingWithMitch , но в своем примере он имеет случайные данные и мог легко их получить.
ArrayList<Fragment> fragments = new ArrayList<>();
Hat[] hats = Hats.getHats();
for(Hat hat: hats){
ViewPagerItemFragment fragment = ViewPagerItemFragment.getInstance(hat);
fragments.add(fragment);
}
MyPagerAdapter pagerAdapter = new MyPagerAdapter(getSupportFragmentManager(), fragments);
mMyViewPager.setAdapter(pagerAdapter);
mTabLayout.setupWithViewPager(mMyViewPager, true);
К сожалению, для меня данные были получены из объекта Livedata. Как я могу l oop или перебирать жилаты, чтобы извлечь все объекты товаров, чтобы я мог установить фрагменты!
ArrayList<Fragment> fragments = new ArrayList<>();
final MarketViewModel marketViewModel = new ViewModelProvider(this).get(MarketViewModel.class);
MutableLiveData<List<Product>> products = marketViewModel.getProductInfo("parentID");
//What to do here !!!
/*for (:) {
ProductInfoFragment fragment = ProductInfoFragment.getInstance(products);
fragments.add(fragment);
}*/
ProductPagerAdapter adapter = new ProductPagerAdapter(getSupportFragmentManager(), 0, fragments);
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager, true);
также, это показывает целые продукты. но как показать нажатый элемент первым. тот, который пользователь нажал. и тогда пользователь сможет менять местами список влево и вправо !?
Редактировать: я пробовал это! но теперь он показывает пустую белую страницу.
ArrayList<Fragment> fragments = new ArrayList<>();
final MarketViewModel marketViewModel = new ViewModelProvider(this).get(MarketViewModel.class);
marketViewModel.getProductInfo("parentID");
marketViewModel.getProductInfo("parentID").observe(this, products -> {
for (int i = 0; i < products.size(); i++) {
Product product = products.get(i);
ProductInfoFragment fragment = ProductInfoFragment.getInstance(product);
fragments.add(fragment);
}
});
ProductPagerAdapter adapter = new ProductPagerAdapter(getSupportFragmentManager(), 0, fragments);
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager, true);