我有一个UI组件,它接受LiveData<PagedList<T>>
,但在一种情况下,我需要将其用于直接从RecycleViewer传递的数据(RecycleViewer产生结构为List<Object>
的输出)。我可以轻松将其映射到Map<Int, Object>
,但是Map无法转换为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>
}
}
override fun create(): DataSource<Int, Any> {
val dataSource = DataSource<Int, Any>()
data.mapIndexed { index, any -> dataSource.put(index, any) }
return dataSource
}
只需将方法添加到DataSource的方法-我在此示例中使用了放置