Событие RecyclerView при изменении набора данных

#java #android #kotlin #android-recyclerview

Вопрос:

Есть ли возможность обработать событие при изменении данных представления переработчика? Я обновляю список в одной части приложения и звоню notifyDataSetChanged . В другой части приложения, где у меня есть ссылка на представление recycler и адаптер, я хочу обработать это событие.

Ответ №1:

Чтобы получить такое событие, вам нужно переопределить onCurrentListChanged(previousList, currentList) , как показано ниже

 val myAdapter = object : ListAdapter<Type> {
 override fun onCurrentListChanged(previousList: MutableList<Type>, currentList: 
 MutableList<Type>) {
    ...
 }

  // other overrides
 }
 
 

Ленивым

 private val myAdapter by lazy {
object : MyAdapter() {
    override fun onCurrentListChanged(previousList: MutableList<Type>,  currentList: MutableList<Type>) {
        
    }
  }
}
 

Комментарии:

1. @Uknowledge_1 Было бы здорово, если бы вы могли принять ответ, так как это помогло бы и другим членам сообщества. Спасибо

Ответ №2:

Существует onCurrentListChanged(previousList, currentList) обратный вызов, который вызывается каждый раз, когда список RV изменяется. Этот обратный вызов является частью ListAdapter . Вы можете передать свой собственный обратный ListAdapter вызов в, а затем вызвать его в переопределенном onCurrentListChanged .