Sto tentando di memorizzare una serie di stringhe usando SharedPreferences
API.Comportamento scorretto durante il tentativo di memorizzare una serie di stringhe usando SharedPreferences
Set<String> s = sharedPrefs.getStringSet("key", new HashSet<String>());
s.add(new_element);
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.putString(s);
edit.commit()
La prima volta che eseguire il codice sopra, s
viene impostato al valore di default (fine appena creato vuoto HashSet
) ed è memorizzata senza problemi.
La seconda e la prossima volta che eseguo questo codice, un oggetto s
viene restituito con il primo elemento aggiunto. Posso aggiungere l'elemento e, durante l'esecuzione del programma, è apparentemente memorizzato nello SharedPreferences
, ma quando il programma viene ucciso, lo SharedPreferences
rilegge dalla sua memoria persistente e i valori più recenti vengono persi.
In che modo il secondo e gli elementi successivi possono essere memorizzati in modo da non perdersi?
il codice non deve essere chiamato editor.putStringSet()? – bluehallu