我正在使用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突出显示表达式上的错误:
对象:观察者
>
Error: Type mismatch. Required: Observer<PagedList<MyItem!>!>
如何解决?
答案 0 :(得分:0)
这是您的observer
问题。您可以执行以下操作:
pagedListLiveData.observe(lifeCycleOwner, Observer{
adapter.submitList(it)
})
否则,您应该使用PagedList<MyItem>
PagedList<MyItem!>!
不为空。
答案 1 :(得分:0)
感谢翠鸟·福奥和耶尔·范赫德。 问题出在导入观察者。 这段代码可以正常工作:
pagedListLiveData.observe(lifeCycleOwner, android.arch.lifecycle.Observer{
adapter.submitList(it)
})
答案 2 :(得分:0)
对于那些来到这里的人,您之前从 LiveData 订阅中删除了“观察者”一词。但是出了点问题,过了一会儿,Android Studio 开始要求您将 Observer 带回来。出现类似“类型不匹配的错误。必需:发现观察者:() -> 单位”
附言如果您没有安装按钮,您可能还需要将 Update chanel 从“稳定”切换到其他内容,然后再次使其“稳定”。