如何解决android,观察者一次两个不同的可变实时数据
我想一次观察两个不同的可变实时数据。有什么办法可以在android中实现吗? 这两个数据也位于不同的ViewModel中。
解决方法
您可以使用MediatorLiveData将两个实时数据源合并为一个。这是一个简单的示例,将来自两个单独的视图模型的livedata1和livedata2组合到MediatorLiveData中,该MediatorLiveData发出一个数据类,其中包含livedata1和livedata2的结果。只要livedata1或livedata2发生更改,调解器都会被触发
data class CombinedResult(val firstData: DataType1,val secondData: DataType2)
private fun createLiveDataMediator() : LiveData<CombinedResult> {
val result = MediatorLiveData<CombinedResult>()
val firstLiveData = myViewModel.getLiveData1()
val secondLiveData = mySecondViewModel.getLiveData2()
result.addSource(firstLiveData) {
result.value = CombinedResult(firstLiveData.value,secondLiveData.value)
}
result.addSource(secondLiveData) {
result.value = CombinedResult(firstLiveData.value,secondLiveData.value)
}
return result
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。