Puis-je quand même enregistrer une variable de liste dans la mémoire interne ou externe du téléphone Androids? Je sais que je peux sauvegarder des données primitives, mais pas sûr de celui-ci.
Merci d'avance.
Oui, vous ne pouvez enregistrer que des primitives afin que vous puissiez obtenir quelque chose comme ceci:
List<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
StringBuilder csvList = new StringBuilder();
for(String s : list){
csvList.append(s);
csvList.append(",");
}
sharedPreferencesEditor.put("myList", csvList.toString());
Ensuite, pour créer à nouveau votre list
, vous devez:
String csvList = sharedPreferences.getString("myList");
String[] items = csvList.split(",");
List<String list = new ArrayList<String>();
for(int i=0; i < items.length; i++){
list.add(items);
}
Vous pouvez encapsuler cette "sérialisation" dans votre propre classe en enveloppant une liste pour la garder belle et ordonnée. Vous pouvez également envisager de convertir votre list
en JSON
.
Si vous voulez stocker/récupérer/supprimer une valeur de chaîne dans votre programme, alors List
vaut mieux que Array
. Ci-dessous, je vais vous montrer comment l’utiliser.
// Declaring List Variable
List<String> Mylist = new ArrayList<String>();
// Adding item to List
Mylist.add(list.size(), "MyStringValue"); //this will add string at the next index
// Removing element form list
Mylist.remove(list.size()-1); //this will remove the top most element from List