Anda memerlukan bidang di setiap baris DB untuk menyimpan pesanan. Kemudian Anda perlu mengimplementasikan fitur-fitur itu:
-
Pada penyisipan baris baru (ketika Anda memasukkan objek baru ke dalam database), Anda perlu mengatur urutan bidang ke int berikutnya. Anda bisa mendapatkan nilai maks saat ini (dengan fungsi sql
MAX) lalu lakukan +1 -
Saat pengguna memindahkan item di
RecyclerView, dalam metodeonMovedAnda harus memperbarui semua baris lainnya. Anda dapat menggunakanfromPosdantoPosuntuk itu. Selengkapnya di bawah -
Saat Anda mengisi
RecyclerViewdengan data yang Anda butuhkan untuk memesannya denganorderbidang
Penjelasan fitur ke-2 yang akan diterapkan:pada dasarnya Anda perlu memperbarui semua baris dengan urutan antara fromPos dan toPos :
-
jika pengguna memindahkan item ke atas (misalnya dari posisi 4 ke 2), Anda perlu:
- dapatkan bidang kunci utama dari item saat ini (menggunakan posisi 4)
- ubah semua baris di antara urutan 2 dan pesan 4 :jadi ubah 2 -> 3 dan 3 -> 4
- Ubah urutan item saat ini (menggunakan kunci utama dari poin pertama) menjadi
toPos:dalam contoh ini ubah urutan item saat ini menjadi 2
-
jika pengguna memindahkan item ke bawah (misalnya dari posisi 2 ke 4) Anda perlu:
- dapatkan bidang kunci utama dari item saat ini (menggunakan posisi 2)
- ubah semua baris antara urutan 2 dan urutan 4:jadi ubah 4 -> 3 dan 3 -> 2
- ubah urutan item saat ini (menggunakan kunci utama dari poin pertama) menjadi
toPos:dalam contoh ini ubah urutan item saat ini menjadi 4
Semoga sedikit membantu