【发布时间】:2019-12-19 12:12:42
【问题描述】:
我有一个 UI 组件,它接受 LiveData<PagedList<T>>,但在一种情况下,我需要将它用于直接从 RecycleViewer 传递的数据(RecycleViewer 产生结构为 List<Object> 的输出)。我可以很容易地将它映射到Map<Int, Object>,但是映射不能转换为DataSource,所以我需要以某种方式将它转换为DataSource<Int, Object>或直接转换为<PagedList<Object>>
我尝试了以下方法,但不幸的是它不起作用 -> 错误是您无法将 MutableMap 转换为 DataSource。有什么想法吗?
class DataSourceFactory(
val data: List<Object>
) : DataSourceFactory<Object>() {
override fun create(): DataSource<Int, Object> {
val mappedData = mutableMapOf<Int, Object>()
var index = 0
for (object in data) {
mappedData[index] = object
index = +1
}
return mappedData as DataSource<Int, Object>
}
}
【问题讨论】:
-
嵌入式内存数据库,如 H2 可以交付,非常简单。
-
您能说得更具体些吗?我正在传递给 RecyclerViewer
List<Pair<String?, List<Object>>>,而 RecyclerViewer 正在使用 pairData.first(即String?)并将其显示为视图的标题,我需要将 pairData.second(即List<Object>)传递给此 UI 组件为DataSource<Int, Object> -
抱歉忘记是安卓了,经验不足。幸运的是已经有了答案。
标签: java android kotlin android-livedata