U hebt een veld nodig in elke DB-rij om de bestelling op te slaan. Vervolgens moet u deze functies implementeren:
-
Bij het invoegen van een nieuwe rij (wanneer u een nieuw object in de database invoegt) moet u de volgorde instellen veld naar de volgende int. U kunt de huidige maximale waarde krijgen (met sql-functie
MAX
) en doe dan gewoon +1 -
Wanneer de gebruiker een item verplaatst in
RecyclerView
, in methodeonMoved
u moet alle andere rijen bijwerken. U kunt defromPos
. gebruiken entoPos
daarom. Meer daarover hieronder -
Wanneer u uw
RecyclerView
. vult met gegevens die je nodig hebt om ze te bestellen doororder
veld
Uitleg van de 2e functie die moet worden geïmplementeerd:in principe moet je alle rijen bijwerken met de volgorde tussen fromPos
en toPos
:
-
als de gebruiker het item omhoog heeft verplaatst (bijvoorbeeld van positie 4 naar 2), moet u:
- primair sleutelveld van huidig item ophalen (met positie 4)
- verander alle rijen tussen bestelling 2 en bestel 4 :dus verander 2 -> 3 en 3 -> 4
- Wijzig de huidige itemvolgorde (met de primaire sleutel van het eerste punt) in
toPos
:verander in dit voorbeeld de huidige itemvolgorde in 2
-
als de gebruiker het item naar beneden heeft verplaatst (bijvoorbeeld van positie 2 naar 4), moet u:
- primair sleutelveld van huidig item ophalen (met positie 2)
- verander alle rijen tussen bestelling 2 en volgorde 4:dus verander 4 -> 3 en 3 -> 2
- wijzig de huidige itemvolgorde (gebruik de primaire sleutel van het eerste punt) in
toPos
:verander in dit voorbeeld de huidige itemvolgorde in 4
Hopelijk helpt het een beetje