Im Verwendung SharedPreference auf Android, um einen Satz von Strings zu speichern. Es ist gut gespeichert und abgerufen, aber , wenn die App neu gestartet wird einige Daten verloren. Strings werden nacheinander hinzugefügt, und bevor ich sie hinzufüge, rufe ich den Satz auf, füge einen String hinzu und speichere ihn dann erneut. DieseSet <String> Datenverlust beim Wiederherstellen von SharedPreferences nach Neustart der App
ist, wie ich es speichern:
Set<String> emptySet = null;
SharedPreferences prefs = getContext().getSharedPreferences(getContext().getString(R.string.pref_disagree_key), Activity.MODE_PRIVATE);
String newIdAgreed = getItem(position).getId();
if (prefs.contains(getContext().getString(R.string.pref_disagree_key))) {
Set<String> updateSet = prefs.getStringSet(getContext().getString(R.string.pref_disagree_key), emptySet);
updateSet.add(newIdAgreed);
SharedPreferences.Editor editor = prefs.edit();
editor.putStringSet(getContext().getString(R.string.pref_disagree_key), updateSet);
editor.commit();
} else {
Set<String> newSet = new HashSet<String>();
newSet.add(newIdAgreed);
SharedPreferences.Editor editor = prefs.edit();
editor.putStringSet(getContext().getString(R.string.pref_disagree_key), newSet);
editor.commit();
}
Und das ist, wie ich es wieder:
if (prefsDisagree.contains(getContext().getString(R.string.pref_disagree_key))){
disagree_set = new HashSet<String>(prefsDisagree.getStringSet(getContext().getString(R.string.pref_disagree_key), emptySet));
for (String item: disagree_set){
//stuff done here
}
}
ich einige ähnliche Fragen zu diesem Thema gesehen, aber keiner der Antworten mein Problem gelöst . Irgendwelche Ideen?