Ich versuche, eine Liste mit denselben Werten zweimal in den Einstellungen zu schreiben, und wenn ich es lese, bekomme ich nur 1 Ergebnis. Hier mein SharedPreferences-Code ist:SharedPreferences, um Daten nicht zu überschreiben
public void storeDeviceDetails(final ArrayList<String> deviceDetails) {
SharedPreferences.Editor editor = context.getSharedPreferences("devicePrefs",Context.MODE_PRIVATE).edit();
Set<String> set = new LinkedHashSet<>();
set.addAll(deviceDetails);
editor.putStringSet("deviceDetails", set);
editor.apply();
}
public ArrayList<String> retrieveDeviceDetails() {
SharedPreferences prefs = context.getSharedPreferences("devicePrefs", MODE_PRIVATE);
ArrayList<String> details = null;
Set<String> set = prefs.getStringSet("deviceDetails", null);
if (set != null) {
details = new ArrayList<>(set);
}
return details;
}
ich es schreibe, wie es in 2 aufeinander folgenden Zeilen zur Liste -
MyPrefClass.storeDeviceDetails(myList);
MyPrefClass.storeDeviceDetails(myList);
Und jetzt in der nächsten Zeile ich MyPrefClass.retrieveDeviceDetails();
ich es nur als - [hero2lte, 7.0, hero2ltexx, SM-G935F, samsung]
Lieber eine echte [mcve] für uns bereitstellen; anstatt Teile Ihres Codes abzulegen. – GhostCat
Sie übergeben eine Liste an ein Set und ein Set enthält keine doppelten Werte – giorashc
Mögliche Duplikate von [Kann ich zwei oder mehr Werte mit demselben Schlüssel mit SharedPreferences in Android speichern?] (Http://stackoverflow.com/questions/13623098/can-i-store-two-or-more-values-mit-same-key-using-sharedpreferences-in-android) –