代码之家  ›  专栏  ›  技术社区  ›  png

android:mutablelivedata更改没有更新UI

  •  2
  • png  · 技术社区  · 7 年前

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

     myMutableLivedata.value = newvale
    

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

    这是可变livedata的预期行为吗

    1 回复  |  直到 7 年前
        1
  •  6
  •   advice    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
    })
    

    最后,在代码的其他地方,您可以更新 实时数据 ,以及 观察员 将被通知。

    // Somewhere else
    liveData.value = MyItem("new value")