android - 将不同的 LiveData List 合并为一个唯一的 List
问题描述
我想将不同的元素合并LiveData<List<Element>>
为一个,我认为这MediatorLiveData<List<Element>>
将是一个不错的选择,但我不确定,因为 onChange 是用完整的 List 调用的,所以我不能只添加新元素,我该如何实现仅添加新数据。我的代码:
val localData = repository.getAllElementsFromDatabase()
val internetData = MutableLiveData<List<Element>>()
val allData = MediatorLiveData<List<Element>>()
init {
internetData.postValue(repository.getAllElementsFromInternet())
allData.addSource(localData){
if (allData.value==null) allData.value = it
else for (elem in it!!) allData.value.add(elem)
}
allData.addSource(internetData){
if (allData.value==null) allData.value = it
else for (elem in it!!) allData.value.add(elem)
}
}
解决方案
推荐阅读
- mysql - 使用单个查询更新两个表
- python - Django 项目模板错误:django.template.exceptions.TemplateDoesNotExist
- google-chrome - 使用支持悬停的输入类型启动无头 Chrome
- jpa - jpa控制器和级联删除问题
- java - 使用不同的 log4j 配置(设置为调试)重新运行失败的测试?
- javascript - 是否可以使用 PHP、Javascript 跟踪我的网站用户的确切位置
- python - 基于终端的聊天应用程序给出错误:'invalid literal for int() with base 10:' 当试图从其他客户端返回消息到客户端时
- r - pROC 如何处理多级因子标签?
- angular - 不显示第一个选项以角度选择
- .net-core - 顶部有菜单的 Blazor 模板