我正在使用 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/

10-12 03:40