Как исправить исключение IndexOutOfBoundsException в функции onRowMoved адаптера RecyclerView?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как исправить исключение IndexOutOfBoundsException в функции onRowMoved адаптера RecyclerView?

Сообщение Anonymous »


У меня возникла проблема с реализацией функции onRowMoved в моем адаптере RecyclerView. Эта функция отвечает за управление перемещением строк в RecyclerView при перетаскивании элементов. Однако я столкнулся с ошибкой java.lang.IndexOutOfBoundsException с сообщением «Индекс -1 выходит за пределы для длины 8».
val touchHelper = ItemTouchHelper(объект: ItemTouchHelper.Callback() { ... переопределить удовольствие onMove( recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, цель: RecyclerView.ViewHolder ): Логическое значение { вернуть imagesAdapter?.onRowMoved(viewHolder, target)?: false } }) весело onRowMoved( fromViewHolder: RecyclerView.ViewHolder, toViewHolder: RecyclerView.ViewHolder ): Логическое значение { val fromPosition = fromViewHolder.bindingAdapterPosition val toPosition = toViewHolder.bindingAdapterPosition val imagesSize = this.images.size if (fromPosition < imagesSize && toPosition < imagesSize) { если (fromPosition < toPosition) { for (я в fromPosition до toPosition) { Collections.swap(this.images, i, i + 1) } notifyItemMoved (fromPosition, toPosition) } еще { for (i in fromPosition downTo toPosition + 1) { Collections.swap(this.images, i, i - 1) } notifyItemMoved (toPosition, fromPosition) } Обработчик().postDelayed({ уведомитьDataSetChanged() }, 1000) вернуть истину } вернуть ложь }
Журналы сбоев следующие:
Неустрашимое исключение: java.lang.IndexOutOfBoundsException: индекс -1 выходит за пределы для длины 8 в jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) в jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) в jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266) в java.util.Objects.checkIndex(Objects.java:359) в java.util.ArrayList.get(ArrayList.java:434) в java.util.Collections.swap(Collections.java:548) на com....newProduct.NewProductImagesAdapter.onRowMoved(NewProductImagesAdapter.kt:208) на com....newProduct.NewProduct$createImagesAdapter$touchHelper$1.onMove(NewProduct.kt:927) в androidx.recyclerview.widget.ItemTouchHelper.moveIfNecessary (ItemTouchHelper.java:891) в androidx.recyclerview.widget.ItemTouchHelper$2.onTouchEvent(ItemTouchHelper.java:390) в androidx.recyclerview.widget.RecyclerView.dispatchToOnItemTouchListeners (RecyclerView.java:3515) в androidx.recyclerview.widget.RecyclerView.onTouchEvent(RecyclerView.java:3713) в android.view.View.dispatchTouchEvent(View.java:14879)
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как исправить исключение IndexOutOfBoundsException в функции onRowMoved адаптера RecyclerView?
    Anonymous » » в форуме Android
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Как исправить исключение IndexOutOfBoundsException в функции onRowMoved адаптера RecyclerView?
    Anonymous » » в форуме JAVA
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Recyclerview: исключение java.lang.indexoutofboundsexception
    Anonymous » » в форуме Android
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Kotlin RecyclerView в RecyclerView после обновления представление переходит в дочерний RecyclerView
    Anonymous » » в форуме Android
    0 Ответы
    80 Просмотры
    Последнее сообщение Anonymous
  • Как исправить исключение java.lang.IndexOutOfBoundsException
    Anonymous » » в форуме JAVA
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»