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;
}
消してから追加するのがポイント。