изменение данных во фрагменте на основе данных, отправленных из второго фрагмента, содержащегося в одном действии - PullRequest
0 голосов
/ 20 марта 2020

У меня есть Задание А, которое содержит 2 фрагмента. B и C B получают данные из Activity с помощью Bundle. этот фрагмент показывает подкатегории некоторых продуктов.

C показывает продукты основной категории. так что если основная категория содержит 100 наименований. этот фрагмент показывает их все.

, скажем, фрагмент B показывает 5 подкатегорий основной категории. и C показывает все предметы основной категории. Я хочу знать, как при нажатии подкатегории из фрагмента B, чтобы отправить строку во фрагмент C и отфильтровать элементы, чтобы показать только элементы, относящиеся к этой подкатегории. поэтому вместо 100 отображается 20 элементов, соответствующих нажатой подкатегории.

как отправить эту строку во фрагмент C и как перехватить это событие во фрагменте C. каждый раз, когда нажата подкатегория. элементы фильтруются.

Примечание. Использование RecyclerView и MVVM.

1 Ответ

1 голос
/ 21 марта 2020

Одним из элегантных и простых решений является использование ViewModel и LiveData.

Я создал репо с тремя классами. Два фрагмента, A и B и ViewModel, все в Java.

https://github.com/MicroRJ/how_to_use_view_models_for_communication

...