ListAdapter не обновляется при редактировании содержимого

#android #kotlin-android-extensions

#Android #kotlin-android-extensions

Вопрос:

Каждый раз, когда содержимое добавляется в recyclerview и случается, что заголовок написан с ошибкой, когда я иду исправлять ошибку, обновление / редактирование не вступает в силу.

Цель — исправить ошибку обновления, поэтому, когда я вернусь, чтобы исправить это, заголовок содержимого будет обновлен

 companion object
{  
//THIS THE ADAPTER CLASS
    private val DIFF_CALLBACK: DiffUtil.ItemCallback<Book> = object:DiffUtil.ItemCallback<Book>()
    {
        @Override
        override fun areItemsTheSame(oldItem: Book, newItem: Book):Boolean
        {
            return oldItem.id == newItem.id
        }

        @Override
        override fun areContentsTheSame(oldItem: Book, newItem: Book): Boolean
        {
            return oldItem.title == newItem.title amp;amp;
                    oldItem.author == newItem.author amp;amp;
                    oldItem.genre == newItem.genre

        }
    }
}

//THIS IS IN THE MAINACTIVITY
val adapter = BookAdapter()
recyclerView.adapter = adapter 

bookViewModel = 
ViewModelProviders.of(this).get(BookViewModel::class.java)
bookViewModel.getAllBooks().observe(this, object:Observer<List<Book>>
{
     @Override
     override fun onChanged(@Nullable books: List<Book>)
     {
         adapter.submitList(books)
     }
})
  

Я ожидаю, что содержимое в recyclerview будет обновлено, если я хочу исправить ошибку, в которой была допущена ошибка.

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

1. вы нашли какое-нибудь лучшее решение? Я застрял с той же проблемой, я меняю значения позиций в списке, но observe не вызывал.

Ответ №1:

 adapter.notifyDataSetChanged();
  

Это работало на Java, но я не знаю синтаксис kotlin.
Попробуйте добавить это в метод onChange () после

 adapter.submitList(books)
  

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

1. Хорошо, спасибо, приятель, я попробую и посмотрю, что получится.