SQLite
 sql >> база данни >  >> RDS >> SQLite

Съхранявайте нова позиция на елементите RecyclerView в SQLite, след като бъдат плъзгани и пускани

Имате нужда от поле във всеки ред на DB за съхраняване на поръчката. След това трябва да внедрите тези функции:

  • При вмъкване на нов ред (когато вмъквате нов обект в базата данни) трябва да зададете порядъка поле към следващото int. Можете да получите текущата максимална стойност (с sql функция MAX ) и след това просто направете +1

  • Когато потребителят премести елемент в RecyclerView , в метода onMoved трябва да актуализирате всички останали редове. Можете да използвате fromPos и toPos за това. Повече за това по-долу

  • Когато попълните своя RecyclerView с данни, които трябва да ги поръчате по order поле


Обяснение на 2-ра функция, която трябва да бъде внедрена:по принцип трябва да актуализирате всички редове с ред между fromPos и toPos :

  • ако потребителят премести елемента нагоре (например от позиция 4 на 2), трябва да:

    1. получете полето за първичен ключ на текущия елемент (използвайки позиция 4)
    2. променете всички редове между ред 2 и поръчайте 4 :така че променете 2 -> 3 и 3 -> 4
    3. Променете текущата поръчка на артикули (използвайки първичен ключ от първата точка) на toPos :в този пример променете реда на текущите елементи на 2
  • ако потребителят премести елемента надолу (например от позиция 2 на 4), трябва да:

    1. получете полето за първичен ключ на текущия елемент (използвайки позиция 2)
    2. променете всички редове между ред 2 и ред 4:така че променете 4 -> 3 и 3 -> 2
    3. променете текущата поръчка на артикули (използвайки първичен ключ от първата точка) на toPos :в този пример променете реда на текущите елементи на 4


Надявам се да помогне малко




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Android:NullPointerException Не може да се зареди база данни в изглед на списък в рамките на фрагмент

  2. Как да изтеглите данни от базата данни и да ги видите като ListView

  3. SQLite INTERSECT оператор

  4. SQLite SUBSTRING() Обяснено

  5. Избройте всички индекси в база данни на SQLite