3

我正在使用 MutableLiveData 来存储用户所做的选择。该值是从另一个活动设置的。所以 onResume 我正在打电话

 myMutableLivedata.value = newvale

但这不会更新 UI,除非我调用 invalidateall()。

这是 MutableLiveData 的预期行为吗

4

1 回答 1

7

对于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")
于 2018-07-30T20:27:11.513 回答