您是否可以在Android中计算出可观测值(例如可以在VueJS中进行计算)?
class MainActivityViewModel() : ViewModel() {
val speedInput = MutableLiveData<Double>() // Actual value from sensor input.
val speedFactor = MutableLiveData<Double>() // To be set from shared preferences
val speed = speedInput * speedFactor // The value we need is computed from two observables.
}
答案 0 :(得分:1)
如果需要将多个LiveData合并为一个,则有一个MediatorLiveData。它可以将多个LiveData用作源,并根据这些源“计算”自己的值(因此,也应该观察它的值)。
类似这样的东西:
.........
val speed = MediatorLiveData<Double>()
speed.addSource(speedInput) { value ->
speed.value = computeSpeed(speedInput, speedFactor)
}
speed.addSource(speedFactor) { value ->
speed.value = computeSpeed(speedInput, speedFactor)
}
.........
fun computeSpeed(speedInput: MutableliveData<Double>, speedFactor: MutableliveData<Double>) = speedInput.value * speedFactor.value