是否可以使用viewModel类在活动之间传递数据?
我尝试从一个Activity和另一个Activity更新Model对象,并观察第二个Activity的更改,但这没有帮助。我不想使用Bundle,如果可能的话,可以使用viewModel。
答案 0 :(得分:0)
您可以为视图模型创建单例类,这样您就无需以捆绑或任何形式传递它,也可以在多个活动中使用它。
Activity1使用SingleTon类中的getCurrentList()
public class Activity1 extends ViewModel {
// Create a LiveData with a String
private MutableLiveData<String> mCurrentList;
public MutableLiveData<String> getCurrentList() {
if (mCurrentList == null) {
mCurrentList = SingleTonDataRepository.getInstance().getCurrentList();
}
return mCurrentList;
}
}
Activity2使用SingleTon类中的getCurrentList()
public class Activity2 extends ViewModel {
// Create a LiveData with a String
private MutableLiveData<String> mCurrentList;
public MutableLiveData<String> getCurrentList() {
if (mCurrentList == null) {
mCurrentList = SingleTonDataRepository.getInstance().getCurrentList();
}
return mCurrentList;
}
}
仅适用于一个MutableLiveData的SingleTon类
public class SingleTonDataRepository
private static SingleTonDataRepository mSingleTonDataRepository = new SingleTonDataRepository();
SingleTonDataRepository(){
}
public static SingleTonDataRepository getInstance(){
if(mSingleTonDataRepository == null){
mSingleTonDataRepository = new SingleTonDataRepository();
}
return mSingleTonDataRepository;
}
private MutableLiveData<String> mCurrentList;
public MutableLiveData<String> getCurrentList() {
if (mCurrentList == null) {
mCurrentList = new MutableLiveData<>();
}
return mCurrentList;
}
}
希望有帮助!! :)