如何将大量 LiveData 组合在一起并转换为单个实体?



我正在寻找一种方法来组合我的Dao中的一些LiveData函数并将它们转换为单个实体。我想创建这样的东西:

private val combinedValues(ld1, ld2, ld3, ld4){
first, second, third, fourth -> CombinedLiveDataValues(first, second, third, fourth)
}
val combinedEntity: LiveData<Any> = Transformations.map(combinedValues){ it->
val something = it.first.map (etc...)
}

如何创建一种不重复代码并将数十个实时数据概括和添加在一起的方法?

你可以使用这样的东西

fun<T> combine(context: AppCompatActivity, vararg input: LiveData<T>): LiveData<T> {
val output = MutableLiveData<T>()
input.forEach {
it.observe(context, androidx.lifecycle.Observer { value -> 
output.value = value
})
}
return output
}

最新更新