如何解决嵌套转换,而不是合并的实时数据
我有两个实时数据startedAt
和finishedAt
,想在依赖于这两个值的转换中使用它们...我尝试使用mediatorliveData组合它们
fun <A,B> LiveData<A>.combine(other: LiveData<B>): PairLiveData<A,B> {
return PairLiveData(this,other)
}
class PairLiveData<A,B>(first: LiveData<A>,second: LiveData<B>) : MediatorLiveData<Pair<A?,B?>>() {
init {
addSource(first) { value = it to second.value }
addSource(second) { value = first.value to it }
}
}
观察他们
val automaticActivities = Transformations.map(startedAt.combine(finishedAt)) {
Log.v("checkindex",index.toString()+" "+it.first?.size+" "+it.second?.size)
}
但这无法按预期方式工作,因为finishAt在获得所需值之前会返回null,
调试错误:
V /检查索引:0 1空
V /检查索引:0 1 1
在转换中使用转换是否是一个好主意?例如:
val automaticActivities = Transformations.map(startedAt) {
val finishedAt = Transformations.map(finishedAt){
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。