У меня есть ViewModel с именем SharedViewModel:
public class SharedViewModel<T> extends ViewModel {
private final MutableLiveData<T> selected = new MutableLiveData<>();
public void select(T item) {
selected.setValue(item);
}
public LiveData<T> getSelected() {
return selected;
}
}
Я реализовал его на основе примера SharedViewModel на справочной странице Google Arch ViewModel:
Очень часто два или более фрагмента в действии должны взаимодействовать друг с другом. Это никогда не бывает тривиальным, поскольку оба фрагмента должны определять некоторое описание интерфейса, а действие владельца должно связывать их вместе. Более того, оба фрагмента должны обрабатывать случай, когда другой фрагмент еще не создан или не отображается.
У меня есть два фрагмента, которые называются ListFragment
и DetailFragment
.
До сих пор я использовал эти два фрагмента внутри действия под названием MasterActivity
, и все работало хорошо.
Я получил ViewModel в ListFragment
, выбрал значение, чтобы использовать его на DetailFragment
.
mStepSelectorViewModel = ViewModelProviders.of(getActivity()).get(SharedViewModel.class);
Однако теперь в некоторых случаях мне нужно, чтобы ListFragment
(макет для другой конфигурации устройства) был добавлен в другое действие, называемое DetailActivity
. Есть ли способ сделать это аналогично приведенному выше примеру?
Parcelable
со своим объектом? - person OneCricketeer   schedule 20.06.2017