合并到不同的LiveData列表成为唯一列表

时间:2018-08-10 16:23:23

标签: android kotlin android-livedata

我想将不同的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)
    }

}

0 个答案:

没有答案