ArrayList<String> in SharedPreferences speichern

Fr4gg0r

Fr4gg0r

App-Anbieter (Werbung)
465
Normalerweise kann man keine ArrayList in den SharedPreferences speichern.
Das hat mich eben etwas gestört, weshalb ich mir einen workaround gebaut habe:

Code:
List<String> chosenPics = new ArrayList<String>();  //zu speichernde ArrayList
SharedPreferences prefs = getSharedPreferences("settings", 0);
Editor edit = prefs.edit();
int count = chosenPics.size();
edit.putInt("count", count);
for(int a = 0; a<count; a++){
     edit.putString("String"+a, chosenPics.get(a));
}
edit.commit();
Code:
List<String> sources = new Arraylist<String>();
SharedPreferences prefs = getSharedPreferences("settings", 0);
int count = prefs.getInt("count", 0);
for(int i = 0; i<count; i++){
     sources.add(prefs.getString("String"+i, null));
}
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Parg, Prengepower und miha
Hatte mal das selbe Problem, hab damals die ArrayList mit gson in einen json-String gewandelt und diesen gespeichert. Anschließend geht es mit gson auch wieder zurück in eine ArrayList.

Speichern:
Gson gson = new Gson();
String json = gson.toJson(myArrayList);

Laden:
Gson gson = new Gson();
List<String> myArrayList = gson.fromJson(preferenceString, new TypeToken<ArrayList<String>>(){}.getType());
 
  • Danke
Reaktionen: jogimuc

Ähnliche Themen

M
Antworten
0
Aufrufe
1.138
mglinka99
M
T
Antworten
3
Aufrufe
1.066
jogimuc
J
D
Antworten
1
Aufrufe
1.559
koje71
koje71
Zurück
Oben Unten