android : mutablelivedata 更改未更新 UI

android : mutablelivedata change is not updating the UI

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