错误: "Type mismatch. Required: Observer<PagedList<MyItem!>!>" .如何解决?



我正在使用没有空间的PagedListAdapterpagedListLiveData来显示大量项目。
在下面的代码中,我正在尝试将适配器提交到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!>!>

如何解决?

感谢翠鸟福和Jeel Vankhede。导入观察器时出现问题。此代码工作正常:

pagedListLiveData.observe(lifeCycleOwner, android.arch.lifecycle.Observer{
    adapter.submitList(it)
})
这是

你的observer问题。您可以执行以下操作:

pagedListLiveData.observe(lifeCycleOwner, Observer{
     adapter.submitList(it)
})

否则,应使用 PagedList<MyItem!>! 确保PagedList<MyItem>不为 null

对于那些在这里的人,因为您之前已经从LiveData订阅中删除了"观察者"一词。但是出了点问题,过了一会儿,Android Studio开始要求你把Observer带回来。出现诸如"类型不匹配。必需:找到观察者:(( ->单位">

  1. 转到文件>设置->语言和框架->Kotlin
  2. 将"更新香奈儿"切换为"稳定">
  3. 单击"再次检查"按钮。
  4. 单击"安装"按钮。
  5. 重启安卓工作室

附言如果您没有"安装"按钮,则可能还需要将"更新香奈儿"从"稳定"切换到其他内容,然后再次将其设置为"稳定"。

最新更新