SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Lưu trữ vị trí mới của các mục RecyclerView trong SQLite sau khi được kéo và thả

Bạn cần một trường trong mỗi hàng DB để lưu trữ đơn đặt hàng. Sau đó, bạn cần triển khai các tính năng đó:

  • Trên chèn hàng mới (khi bạn chèn một đối tượng mới vào cơ sở dữ liệu), bạn cần đặt thứ tự trường tới số nguyên tiếp theo. Bạn có thể nhận giá trị tối đa hiện tại (với hàm sql MAX ) và sau đó chỉ cần thực hiện +1

  • Khi người dùng di chuyển một mục trong RecyclerView , trong phương thức onMoved bạn phải cập nhật tất cả các hàng khác. Bạn có thể sử dụng fromPostoPos cho điều đó. Thông tin thêm về điều đó bên dưới

  • Khi bạn điền vào RecyclerView của mình với dữ liệu bạn cần để sắp xếp chúng theo order lĩnh vực

Giải thích
về tính năng thứ 2 sẽ được triển khai:về cơ bản bạn cần cập nhật tất cả các hàng có thứ tự giữa fromPostoPos :

  • nếu người dùng di chuyển mục lên trên (ví dụ:từ vị trí 4 lên 2), bạn cần:

    1. lấy trường khóa chính của mục hiện tại (sử dụng vị trí 4)
    2. thay đổi tất cả các hàng giữa đơn hàng 2 và đặt hàng 4 :vì vậy thay đổi 2 -> 3 và 3 -> 4
    3. Thay đổi thứ tự mặt hàng hiện tại (sử dụng khóa chính của điểm đầu tiên) thành toPos :trong ví dụ này, thay đổi thứ tự mặt hàng hiện tại thành 2
  • nếu người dùng di chuyển mục xuống (ví dụ:từ vị trí 2 đến 4), bạn cần:

    1. lấy trường khóa chính của mục hiện tại (sử dụng vị trí 2)
    2. thay đổi tất cả các hàng giữa thứ tự 2 và thứ tự 4:vì vậy hãy thay đổi 4 -> 3 và 3 -> 2
    3. thay đổi thứ tự mặt hàng hiện tại (sử dụng khóa chính của điểm đầu tiên) thành toPos :trong ví dụ này, thay đổi thứ tự mặt hàng hiện tại thành 4


Hy vọng nó sẽ giúp được một chút




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách bỏ qua các hàng vi phạm các ràng buộc khi chèn dữ liệu vào SQLite

  2. java.util.MissingFormatArgumentException:Định dạng chỉ định:s

  3. Tham gia trái SQLite

  4. SQLite JSON_EXTRACT ()

  5. Cách tạo một số ngẫu nhiên trong một phạm vi được chỉ định trong SQLite