Sie benötigen ein Feld in jeder DB-Zeile zum Speichern der Bestellung. Dann müssen Sie diese Funktionen implementieren:
-
Beim Einfügen einer neuen Zeile (wenn Sie ein neues Objekt in die Datenbank einfügen) müssen Sie die Reihenfolge festlegen Feld zum nächsten int. Sie können den aktuellen Maximalwert abrufen (mit der SQL-Funktion
MAX
) und geben Sie dann einfach +1 -
Wenn der Benutzer ein Element in
RecyclerView
verschiebt , in der MethodeonMoved
Sie müssen alle anderen Zeilen aktualisieren. Sie können denfromPos
verwenden undtoPos
dafür. Mehr dazu weiter unten -
Wenn Sie Ihre
RecyclerView
füllen mit Daten, die Sie perorder
bestellen müssen Feld
Erläuterung der zweiten zu implementierenden Funktion:Grundsätzlich müssen Sie alle Zeilen mit der Reihenfolge zwischen fromPos
aktualisieren und toPos
:
-
Wenn der Benutzer das Element nach oben verschoben hat (z. B. von Position 4 auf 2), müssen Sie:
- Primärschlüsselfeld des aktuellen Elements abrufen (unter Verwendung von Position 4)
- Ändere alle Zeilen zwischen Auftrag 2 und bestellen Sie 4 :also ändere 2 -> 3 und 3 -> 4
- Ändere die aktuelle Artikelreihenfolge (unter Verwendung des Primärschlüssels des ersten Punkts) zu
toPos
:Ändern Sie in diesem Beispiel die aktuelle Elementreihenfolge auf 2
-
Wenn der Benutzer das Element nach unten verschoben hat (z. B. von Position 2 auf 4), müssen Sie:
- Primärschlüsselfeld des aktuellen Elements abrufen (unter Verwendung von Position 2)
- Ändere alle Zeilen zwischen Auftrag 2 und Auftrag 4:also ändere 4 -> 3 und 3 -> 2
- Ändere die aktuelle Artikelreihenfolge (unter Verwendung des Primärschlüssels des ersten Punkts) in
toPos
:Ändern Sie in diesem Beispiel die aktuelle Elementreihenfolge auf 4
Hoffe es hilft ein wenig