Передача данных PagedList в пользовательский RecyclerView - PullRequest
0 голосов
/ 11 апреля 2020

внутри класса DataFragment, который отображает группу Data объектов через пользовательский RecyclerView У меня есть следующий LiveData наблюдатель:

dataViewModel.dataItems.observe(viewLifecycleOwner, Observer<PagedList<Data>> {
            it?.let {
                dataListAdapter.submitList(it)
                binding.dataList.setDataObjects(ArrayList(it))
            }
})

Итак, как вы можете видеть, я слушаю объект dataItems LiveData, который получает PagedList из Data объектов (из базы данных через Paging Library). Это PagedList<Data> будет затем передано в класс Adapter, который расширяет PagedListAdapter.

Но так как я также использую пользовательский RecyclerView, которому также нужны эти Data объекты, я сначала преобразовываю PagedList<Data> в ArrayList и передайте его на заказ RecyclerView. binding.dataList относится к таможне RecyclerView. Цель состояла в том, чтобы класс PagedListAdapter и пользовательский RecyclerView работали с одним и тем же списком объектов Data. Вот небольшой фрагмент пользовательского RecyclerView класса:

class CustomRecyclerView : RecyclerView {

      private var dataObjects: List<Data>? = null

      // some other operations ...
      // blablablablabla

      /** set the [PagedList] of [Data] instances we get from the database */
      fun setDataObjects(dataObjects: ArrayList<Data>) {
          this.dataObjects = dataObjects
      }
}

Мой вопрос будет таким: Это нормально? Передача объектов PagedList из Data в пользовательский класс RecyclerView, вызывает ли это какую-либо ошибку или неправильную работу? Или я должен также использовать экземпляр PagedList<Data> в setDataObjects() методе пользовательского класса RecyclerView вместо обычного ArrayList<Data> экземпляра? Приложение работает нормально, но я не совсем уверен.

Заранее спасибо за помощь.

...