#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. Хорошо, спасибо, приятель, я попробую и посмотрю, что получится.