我正在使用没有房间的PagedListAdapter
和pagedListLiveData
来显示大量项目。
在下面的代码中,我正在尝试将适配器提交到PagedList。
val pagedListLiveData = LivePagedListBuilder(sourceFactory, pagedListConfig)
.setFetchExecutor(Executors.newSingleThreadExecutor())
.build()
val adapter = MyPagedAdapter()
// error below: Type mismatch. Required:Observer<PagedList<MyItem!>!>
pagedListLiveData.observe(lifeCycleOwner, object : Observer<PagedList<MyItem>>() {
override fun onChanged(items: PagedList<MyItem>) {
Log.d(LOG_TAG, "submit PagedList")
adapter.submitList(items)
}
})
Android Studio突出显示表达式上的错误:
object:Observer <PagedList <MyItem >>
Error: Type mismatch. Required: Observer<PagedList<MyItem!>!>
怎么解决?
这是你的observer
问题。您可以执行以下操作:
pagedListLiveData.observe(lifeCycleOwner, Observer{
adapter.submitList(it)
})
否则,你应该通过使用PagedList<MyItem>
确保PagedList<MyItem!>!
不为null
感谢Kingfisher Phuoc和Jeel Vankhede。问题在于导入Observer。这段代码工作正常:
pagedListLiveData.observe(lifeCycleOwner, android.arch.lifecycle.Observer{
adapter.submitList(it)
})