我的 ViewModel 中有两个变量,由用户使用按钮控制。他可以通过单击适当的按钮来减少或增加值。
val age = MutableLiveData<Int>().apply { value = 0 }
val weight = MutableLiveData<Double>().apply { value = 0.0 }
现在我只想在两个变量的值都大于 0 时启用保存按钮。怎么做?我想过在 ViewModel 中创建另一个 LiveData 变量,correctData
或者以某种方式在 Activity 中观察年龄和体重变量,但我需要帮助,因为我不知道该怎么做。
谢谢你的帮助。
更新
我创建了 MediatorLiveData 并且它几乎可以工作,几乎是因为它没有检测两个来源是否都提供了真正的价值,但是否有任何真正的价值。
private val _correctData = MediatorLiveData<Boolean>().apply {
value = false
addSource(age) { x -> x?.let { value = x > 0 } }
addSource(repeats) { x -> x?.let { value = x > 0 } }
}
有任何想法吗?