внутри класса 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>
экземпляра? Приложение работает нормально, но я не совсем уверен.
Заранее спасибо за помощь.