Обновление других фрагментов (те же самые воссозданные фрагменты) в окне просмотра, когда элемент отмечен - PullRequest
0 голосов
/ 25 сентября 2019

Я использую тот же фрагмент для 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);
        }
    }
}

}

...