Я смотрю на свой вид рециркулятора, я хочу иметь возможность удалять элементы.
Когда я проводю, чтобы удалить, я получаю эту ошибку.
java .lang .ArrayIndexOutOfBoundsException: length = 5; index = -1
Я полагаю, что при смахивании не получается позиция
Как это можно исправить?
Вот код, который я использую в действие.
private fun initRecyclerView() {
messages_recycler_view.apply {
layoutManager = LinearLayoutManager(this@MessagesListVC)
val topSpacePaddingDecoration = TopSpacingItemDecoration(30)
addItemDecoration(topSpacePaddingDecoration)
messagesAdapter = MessagesRecyclerAdaptor()
adapter = messagesAdapter
val swipeHandler = object : SwipeToDeleteCallback(this@MessagesListVC) {
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
messagesAdapter = MessagesRecyclerAdaptor()
adapter = messagesAdapter
(adapter as MessagesRecyclerAdaptor).removeAt(viewHolder.adapterPosition)
}
}
val itemTouchHelper = ItemTouchHelper(swipeHandler)
itemTouchHelper.attachToRecyclerView(messages_recycler_view)
}
}
И это функция удаления в адаптере утилизатора.
fun removeAt(position: Int) {
println("Tony the items count is {${messagesInfo.size}")
messagesInfo.removeAt(position)
notifyItemRemoved(position)
println("Tony the new data is $messagesInfo")
println("Tony the items count is {${messagesInfo.size}")
}