我正在编写一个应用程序,它使用一个 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。 我不知道为什么,请帮助我。提前致谢。