У меня 12 фрагментов UpcomingGamesFragment
, повторяемых двенадцать раз для каждого месяца года, соответствующий фрагмент показывает релизы игр за месяц. Например, в первом месяце будут показаны игры, выпущенные в январе 2019 года, в следующем фрагменте будут релизы в феврале 2019 года и т. Д.
Я пытаюсь построить архитектуру, которая использует ViewModel
. ViewModel
, который будет совместно использоваться всеми моими 12 фрагментами и будет корректно изменять данные (через LiveData) для всех фрагментов, но я не знаю, как использовать этот класс ViewModel
для обновления всех видимых фрагментов, вот мой UpcomingGamesFragment
класс с методом данных месяца запроса:
public class UpcomingGamesFragment extends Fragment {
public void loadReleaseData(final int refresh) {
if (mDatabaseLoading == null) {
Log.d(TAG, "Fragment filter " + mFilter + " [fragment is null]");
return;
} else {
Log.d(TAG, "Updating fragment: " + mFilter);
}
if (AppUtil.doesInternetWork(getActivity())) {
// update, data fetched from firebase
}
}
12 фрагментов инициализируются в другом фрагменте, который показан в MainActivity
, фрагмент называется UpcomingViewPagerFragment
, который создает 12 UpcomingGamesFragment
в цикле.
А вот мой ViewModel
класс:
public class ReleasesViewModel extends ViewModel {
private MutableLiveData<List<_Release>> upcomingFragmentLiveData =
new MutableLiveData<>();
public ReleasesViewModel() {
}
public LiveData<List<_Release>> getUpcomingFragmentList() {
return upcomingFragmentLiveData;
}
}
Так, как я могу обновить 12 фрагментов с помощью метода loadReleaseData
с учетом жизненного цикла каждого?