ItemTouchHelperのドラッグ&ドロップでArrayListも並び替える

  • 1
    いいね
  • 2
    コメント

RecyclerViewで使うItemTouchHelperは簡単にドラッグ&ドロップやスワイプを実装できます。

しかし、ドロッグ&ドロップでは内部的にリストデータの順番を変えることはできない?
ので、そのリストを保存しても次回起動時に元に戻ってしまう。
そこで少しコード追加。

といっても単純。

@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target)
{
    final int fromPosition = viewHolder.getAdapterPosition();
    final int toPosition = target.getAdapterPosition();
    recyclerAdapter.notifyItemMoved(fromPosition, toPosition);
    //追加ここから
    String temp = arrayList.get(fromPosition);
    arrayList.remove(fromPosition);
    arrayList.add(toPosition, temp);
    //ここまで
    return true;
}

消してから追加するのがポイント。