Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android viewmodel Android:ViewModel“;“计算可观测”;_Android Viewmodel - Fatal编程技术网

Android viewmodel Android:ViewModel“;“计算可观测”;

Android viewmodel Android:ViewModel“;“计算可观测”;,android-viewmodel,Android Viewmodel,你能在Android中计算出可观测值吗(比如说,在VueJS中) class MainActivityViewModel():ViewModel(){ val speedInput=MutableLiveData()//传感器输入的实际值。 val speedFactor=MutableLiveData()//根据共享首选项设置 val speed=speedInput*speedFactor//我们需要的值是从两个观察值计算出来的。 } 如果需要将多个LiveData合并到一个中,则有一个解决

你能在Android中计算出可观测值吗(比如说,在VueJS中)

class MainActivityViewModel():ViewModel(){
val speedInput=MutableLiveData()//传感器输入的实际值。
val speedFactor=MutableLiveData()//根据共享首选项设置
val speed=speedInput*speedFactor//我们需要的值是从两个观察值计算出来的。
}

如果需要将多个LiveData合并到一个中,则有一个解决方案。它可以将多个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
。。。。。。。。。
val speed=MediatorLiveData()
speed.addSource(speedInput){value->
speed.value=计算速度(speedInput,speedFactor)
}
speed.addSource(speedFactor){value->
speed.value=计算速度(speedInput,speedFactor)
}
.........
乐趣计算速度(speedInput:MutableliveData,speedFactor:MutableliveData)=speedInput.value*speedFactor.value
.........
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