我正在编写一个使用一个 Activity 并具有 2 个片段的应用程序。我想通过使用实时数据在它们之间共享数据,所以我创建了一个 SharedViewModel 扩展 ViewModel() 并且这个类的变量名为:
private val _mutableUser = MutableLiveData<UserEntity>()
val userGetFromValidate: LiveData<UserEntity> = _mutableUser
fun setUserFromValidate(userEntity: UserEntity) {
_mutableUser.value = userEntity
}
然后我创建了一个 BaseViewModel 扩展 SharedViewModel ,它具有:
protected val sharedViewModel = SharedViewModel()
我有 LoginFramentViewModel 和 UserFragmentViewModel 扩展 BaseViewModel,它们的 2 个实例我使用 activityViewModels() 的委托。我在LoginFragmentViewModel 中为userGetFromvalidate 设置了值。
sharedViewModel.setUserFromValidate(userEntity)
LoginFragment 导航到 UserFragment。但是当我打电话时:
sharedViewModel.userGetFromValidate.value
从 LoginFragmentViewModel 它返回 userEntity,当我在 UserFragmentViewModel 中调用它时它返回 null。我不知道为什么,请帮助我。提前致谢。