为什么android:text不显示最新的LiveData值?

问题描述

以下代码基于project

修改了一些代码

android:text="@{viewmodel.name}"显示LiveData的{​​{1}}值。

name将更改fun onLike()的{​​{1}}值。

我认为LiveData在单击按钮(name)后将显示最新值“我的新”。

但是实际上,android:text="@{viewmodel.name}"一直显示“ Ada”,为什么?

SimpleviewmodelSolution.kt

android:id="@+id/like_button"

solution.xml

android:text="@{viewmodel.name}"

解决方法

将您的onLike()更改为此:

fun onLike() {
    _likes.value = (_likes.value ?: 0) + 1
    _name.value = "My new"
}

此外,您可以将_name声明为val而不是var