Ошибка: «Несоответствие типов. Обязательно: Observer <PagedList <Message!>!>». Как исправить? - PullRequest
0 голосов
/ 11 апреля 2019

Я использую 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!>!>

Как это исправить?

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

Спасибо Kingfisher Phuoc и Jeel Vankhede.Проблема заключалась в импорте Observer.Этот код отлично работает:

pagedListLiveData.observe(lifeCycleOwner, android.arch.lifecycle.Observer{
    adapter.submitList(it)
})
0 голосов
/ 11 апреля 2019

это ваша observer проблема.Вы можете просто сделать что-то, как показано ниже:

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

В противном случае вы должны убедиться, что PagedList<MyItem> не равно нулю, используя PagedList<MyItem!>!

...