Все, что вы можете сделать, если вы хотите поделиться ViewModel
от деятельности
и повторно использовать его во фрагменте, используя его активность context .
Итак, на Уровень активности используйте как показано ниже:
mReleasesViewModel = ViewModelProviders.of(this, new ReleasesViewModelFactory(filter)).get(ReleasesViewModel.class); // this will make ViewModel on activity level.
И когда вызывается событие закрытия вашего ящика, используйте этот объект mReleasesViewModel
для вызова метода загрузки:
mReleasesViewModel.loadReleases(); // This will provide your list data to your LiveData object while observing on fragments.
Теперь для Уровень фрагмента используйте тот же объект ViewModel, который использовался в действии, с context , как показано ниже:
mReleasesViewModel = ViewModelProviders.of(getActivity()).get(ReleasesViewModel.class); // this will make same ViewModel object on fragment level as activity.
Остальная часть вызова наблюдателя будет такой же для фрагмента, как показано ниже:
mReleasesViewModel.getUpcomingReleases().observe(this, new Observer<List<_Release>>() {
@Override
public void onChanged(@Nullable List<_Release> releases) {
// whenever the list is changed
if (releases != null) {
mUpcomingGamesAdapter.setData(releases);
mUpcomingGamesAdapter.notifyDataSetChanged();
}
mDatabaseLoading.setVisibility(View.GONE);
}
});
Дайте мне знать, если все еще нужны какие-либо подробные объяснения, я соответствующим образом отредактирую свой ответ.