共享视图模型

时间:2021-03-09 14:55:41

标签: android-fragments android-livedata android-viewmodel mutablelivedata view-model-pattern

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

0 个答案:

没有答案