Я использую тот же фрагмент для viewPagerAdapter
, проблема заключается в том, что когда я нажимаю checkbox
в первом созданном fragment
(вкладка ВСЕ элементы), то тот же элемент, который является другим fragment
, не обновляется.Я использую базу данных комнаты и получаю все данные, когда создается дочерний элемент fragment
, и обновляю в базе данных элемент, когда отмечен checkbox
public class CategoryViewPager extends FragmentPagerAdapter {
private List<CategoryResult> categoryResults;
@Setter
@Getter
private List<Menu> items;
@Getter
@Setter
Menu updateItem;
public CategoryViewPager(FragmentManager fm, Pair pair) {
super(fm);
categoryResults = pair.getCategoryResults();
items = pair.getMenuList();
}
@Override
public Fragment getItem(int position) {
List<Menu> menus = Stream.of(getItems()).filter(m -> m.getCategory_name().equals(categoryResults.get(position).getName())).toList();
MenuList menuList = new MenuList(menus);
MenuList all = new MenuList(getItems());
if (position == 0) {
return GoodsTabFragment.getInstance(all, "All");
} else
return GoodsTabFragment.getInstance(menuList, categoryResults.get(position).getName());
}
@Override
public int getCount() {
return categoryResults.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return categoryResults.get(position).getName();
}
public void updateList(Menu item) {
setUpdateItem(item);
for (int i = 0; i < this.items.size(); i++) {
if (items.get(i).getId() == item.getId()) {
items.set(i, item);
}
}
}
}