如何在片段和对话框片段的ViewModel中使用相同的mutableLiveData

问题描述 投票:1回答:1

我有一个ViewModel,用于Fragment和DialogFragment。在对话框片段中,我尝试更新对话框片段中的MutableLiveData值,然后在我的片段中使用MutableLiveData中的值。当我在对话框片段中检查时,我在MutableLiveData中包含数据,但是当尝试访问片段中的数据时,我得到了空值。请指导我如何解决此问题?

在ViewModel中:

val width = MutableLiveData<String>()
val height = MutableLiveData<String>()
val length = MutableLiveData<String>()

在DialogFragment中:

vModel.width.value = "6"
vModel.height.value = "6"
vModel.length.value = "6"

以及我尝试从MutableLiveData访问数据的片段:

println(vModel.width.value)
println(vModel.height.value)
println(vModel.length.value)
android fragment viewmodel android-dialogfragment mutablelivedata
1个回答
0
投票

确保使用活动上下文加载ViewModel,这样一个实例将与所有片段共享,并且不会为每个片段重新创建

类似的东西

val viewModel by activityViewModels<MainViewModel> ()
© www.soinside.com 2019 - 2024. All rights reserved.