web-dev-qa-db-fra.com

Liste de sauvegarde Android <String>

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.

10
Luke Taylor

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

23
Blundell

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
0
Pir Fahim Shah