我有一个名为 SharedViewModel 的 ViewModel:
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;
}
}
我已经基于 Google 的 Arch ViewModel 参考页面上的 SharedViewModel 示例实现了它:
一个活动中的两个或多个片段需要相互通信是很常见的。这绝不是微不足道的,因为两个片段都需要定义一些接口描述,并且所有者活动必须将两者绑定在一起。此外,两个片段都必须处理另一个片段尚未创建或不可见的情况。
我有两个片段,称为ListFragment
和DetailFragment
。
到目前为止,我在一个名为 的活动中使用了这两个片段MasterActivity
,并且一切正常。
我得到了 ViewModel ListFragment
,选择了使用它的值DetailFragment
。
mStepSelectorViewModel = ViewModelProviders.of(getActivity()).get(SharedViewModel.class);
但是,现在,在某些情况下,我需要将ListFragment
(不同设备配置的布局)添加到不同的活动中,称为DetailActivity
. 有没有办法类似于上面的例子?