Lors de l'enregistrement d'une ArrayList sur Android, si c'est aussi simple que d'utiliser SQLite, Il est pratique de le convertir en JSON et de l'enregistrer dans Preference.
De plus, je pense qu'il sera plus facile d'utiliser GSON (bibliothèque Google) lors de la conversion en JSON. https://github.com/google/gson
Cette fois, convertissez le type ʻArrayList
Présentation de la bibliothèque gson avec gradle dans Android Studio.
dependencies{
...
...
compile 'com.google.code.gson:gson:2.7' //Peut-être un peu vieux
}
private ArrayList<String> arrayList;
SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE);
Gson gson = new Gson();
arrayList = gson.fromJson(pref.getString(SAVE_KEY, ""), new TypeToken<ArrayList<String>>(){}.getType());
Si vous souhaitez brancher le traitement de l'état non enregistré à la préférence, cela ressemble à ceci
private ArrayList<String> arrayList;
SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE);
Gson gson = new Gson();
String json = pref.getString(SAVE_KEY, "");
if(json.equals("[]"))
{
arrayList = new ArrayList<>();
}
else
{
arrayList = gson.fromJson(json, new TypeToken<ArrayList<String>>(){}.getType());
}
SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE);
Gson gson = new Gson();
pref.edit().putString(SAVE_KEY, gson.toJson(arrayList)).apply();
Recommended Posts