LoginSignup
5
1

More than 5 years have passed since last update.

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

Posted at

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;
}

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

5
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1