将动态查询与LiveData结合使用以提供RecyclerView适配器

时间:2019-08-13 09:23:14

标签: android recycler-adapter android-livedata android-mvvm

我需要显示一个带有两个查询(“获取目标计数”减去“获取实际计数”)得出的“剩余”计数的实体列表。

赞:

EntryA - 4
EntryB - 2
EntryC - 0
EntryD - 1

我想将合并的数据提供给RecyclerView-Adapter以避免在那里查询,我需要听取实际计数的变化。

最后,我需要

entriesWithCount = MutableLiveData<List<EntryWithCount>>()

但是现在我正努力在查询上使用转换。

因此,我需要获取实际计数并执行switchMap,但是要获取实际计数,我已经需要entryId。

entries = dao.getEntries() // LiveData
entries.map { entry ->
   val targetCount = dao.getTargetCount(entry.Id)

   Transformations.switchMap(dao.getActualCount(entry.Id)) {actualCount ->
       // Create EntryWithCount(entry, targetCount - actualCount)
   }
}

1 个答案:

答案 0 :(得分:0)

我想您可以看看另一个答案https://stackoverflow.com/a/53134136/1384360,即使它是用于搜索Java代码的,它也会为您提供帮助