Hallo,
ich habe in meiner App eine Liste (RecyclerView) und darin kann man bestimmte Einträge miteinander vertauschen mit der Methode Collections.swap und würde diesen Tausch auch in der Datenbank speichern, damit der Tausch beim nächsten App start nicht verloren geht, nur wie mache ich das ambesten?
Ich hab das mal so versucht:
Damit klappt es einfach nicht richtig, es muss ja eine andere bessere Methode geben.
Die id müsste auch vertauscht werden, da ich mehrere Tabellen habe, in denen ich ein Paar abfrage mache anhand der ids von dieser Tabelle, aber die id lässt sich nicht ändern.
Wie könnte man das Problem am besten lösen?
Ich bedanke mich schon mal für die Hilfe.
Gruss
ich habe in meiner App eine Liste (RecyclerView) und darin kann man bestimmte Einträge miteinander vertauschen mit der Methode Collections.swap und würde diesen Tausch auch in der Datenbank speichern, damit der Tausch beim nächsten App start nicht verloren geht, nur wie mache ich das ambesten?
Ich hab das mal so versucht:
Java:
public void updateSwapTwoItems(int fromPosition, int toPosition) {
SQLiteDatabase db = DatabaseManager.getInstance().openDatabase();
ContentValues values = new ContentValues();
values.put(TestMemo.COLUMN_TEST1, AppConst.ITEMS.get(toPosition).getTest1());
values.put(TestMemo.COLUMN_TEST2, AppConst.ITEMS.get(toPosition).getTest2());
values.put(TestMemo.COLUMN_TEST3, AppConst.ITEMS.get(toPosition).getTest3());
values.put(TestMemo.COLUMN_TEST4, AppConst.ITEMS.get(toPosition).getTest4());
db.update(TestMemo.TABLE, values, TestMemo.COLUMN_ID+"="+AppConst.ITEMS.get(fromPosition).getId(), null);
values.clear();
values.put(TestMemo.COLUMN_TEST1, AppConst.ITEMS.get(fromPosition).getTest1());
values.put(TestMemo.COLUMN_TEST2, AppConst.ITEMS.get(fromPosition).getTest2());
values.put(TestMemo.COLUMN_TEST3, AppConst.ITEMS.get(fromPosition).getTest3());
values.put(TestMemo.COLUMN_TEST4, AppConst.ITEMS.get(fromPosition).getTest4());
db.update(TestMemo.TABLE, values, TestMemo.COLUMN_ID+"="+AppConst.ITEMS.get(toPosition).getId(), null);
DatabaseManager.getInstance().closeDatabase();
}
Damit klappt es einfach nicht richtig, es muss ja eine andere bessere Methode geben.
Die id müsste auch vertauscht werden, da ich mehrere Tabellen habe, in denen ich ein Paar abfrage mache anhand der ids von dieser Tabelle, aber die id lässt sich nicht ändern.
Wie könnte man das Problem am besten lösen?
Ich bedanke mich schon mal für die Hilfe.
Gruss
Zuletzt bearbeitet: