我正在使用 MutableLiveData 来存储用户所做的选择。该值是从另一个 Activity 设置的。所以 onResume 我正在打电话
myMutableLivedata.value = newvale
但这不会更新 UI,除非我调用一个 invalidateall()。
这是 MutableLiveData 的预期行为吗
最佳答案
对于 LiveData
,您需要对更改进行 Observe
。
首先,创建您的 MediatorLiveData
。
val liveData = MediatorLiveData<MyItem>()
接下来,在您的 Activity/Fragment/Etc 中,您需要调用
.observe
。当 Observer
被触发时,它将拥有更新的数据。liveData.observe(this, Observer {
// Update the UI when the data has changed
})
最后,在代码的其他地方,您可以更新
LiveData
的值,并且 Observer
将得到通知。// Somewhere else
liveData.value = MyItem("new value")
关于android : mutablelivedata change is not updating the UI,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51601419/