Error: "Type mismatch. Required: Observer<PagedList<MyItem!>!>". How to fix?
Error: "Type mismatch. Required: Observer<PagedList<MyItem!>!>". How to fix?
我正在使用 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>
不为空
感谢 Kingfisher Phuoc 和 Jeel Vankhede。
问题在于导入 Observer。
此代码工作正常:
pagedListLiveData.observe(lifeCycleOwner, android.arch.lifecycle.Observer{
adapter.submitList(it)
})
对于那些来到这里的人,您之前已经从 LiveData 订阅中删除了“观察者”一词。但是出了点问题,过了一会儿 Android Studio 开始要求您恢复 Observer。错误如“类型不匹配。必需:发现观察者:() -> Unit”
- 转到文件->设置->语言和框架->Kotlin
- 将“更新渠道”切换为“稳定”
- 点击“再次检查”按钮。
- 点击“安装”按钮。
- 重新启动 Android Studio
P.S。如果您没有安装按钮,您可能还需要将更新频道从“稳定”切换到其他频道,然后再次将其设为“稳定”。
我正在使用 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>
不为空
感谢 Kingfisher Phuoc 和 Jeel Vankhede。 问题在于导入 Observer。 此代码工作正常:
pagedListLiveData.observe(lifeCycleOwner, android.arch.lifecycle.Observer{
adapter.submitList(it)
})
对于那些来到这里的人,您之前已经从 LiveData 订阅中删除了“观察者”一词。但是出了点问题,过了一会儿 Android Studio 开始要求您恢复 Observer。错误如“类型不匹配。必需:发现观察者:() -> Unit”
- 转到文件->设置->语言和框架->Kotlin
- 将“更新渠道”切换为“稳定”
- 点击“再次检查”按钮。
- 点击“安装”按钮。
- 重新启动 Android Studio
P.S。如果您没有安装按钮,您可能还需要将更新频道从“稳定”切换到其他频道,然后再次将其设为“稳定”。