错误:“类型不匹配。必需:观察者 !>”。怎么修?

问题描述 投票:0回答:2

我正在使用没有房间的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突出显示表达式上的错误:

object:Observer <PagedList <MyItem >>

Error: Type mismatch. Required: Observer<PagedList<MyItem!>!>

怎么解决?

android kotlin android-livedata android-pagedlistview
2个回答
0
投票

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

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

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


0
投票

感谢Kingfisher Phuoc和Jeel Vankhede。问题在于导入Observer。这段代码工作正常:

pagedListLiveData.observe(lifeCycleOwner, android.arch.lifecycle.Observer{
    adapter.submitList(it)
})
© www.soinside.com 2019 - 2024. All rights reserved.