web-dev-qa-db-fra.com

Stockage d'un objet de liste de matrices dans SharedPreferences

Cette méthode ajoute un nouvel objet dans ArrayList

//get text from textview
time = date.getText().toString();
entry_d = entry.getText().toString();
dayName = day.getText().toString();

arrayList.add( new ArrayObject( dayName, entry_d ,time));

J'essaie d'ajouter ces 3 chaînes dans SharedPrefrences. Voici mon code:

private void savePreferences(String key, String value) {

    SharedPreferences sharedPreferences = PreferenceManager             
                                     .getDefaultSharedPreferences(this);
    Editor editor = sharedPreferences.edit();
    editor.putBoolean(key, value);
    editor.commit();
}

Cette méthode n’ajoute qu’une chaîne à la fois, alors que je veux ajouter 3 chaînes en une fois. Y at-il une méthode que je peux mettre en œuvre. 

18
usrNotFound

Convertissez votre tableau ou objet en bibliothèque Json avec Gson et stockez vos données sous forme de chaîne au format Json. 

Sauvegarder;

SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
Editor editor = sharedPrefs.edit();
Gson gson = new Gson();

String json = gson.toJson(arrayList);

editor.putString(TAG, json);
editor.commit();

Lis;

SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
Gson gson = new Gson();
String json = sharedPrefs.getString(TAG, "");
Type type = new TypeToken<List<ArrayObject>>() {}.getType();
List<ArrayObject> arrayList = gson.fromJson(json, type);
65
Sinan Kozak

Store Arraylist utilisant les préférences partagées

SharedPreferences prefs=this.getSharedPreferences("yourPrefsKey",Context.MODE_PRIVATE);
Editor edit=prefs.edit();

Set<String> set = new HashSet<String>();
set.addAll(your Arraylist Name);
edit.putStringSet("yourKey", set);
edit.commit();

Récupérer une liste à partir de préférences partagées

Set<String> set = prefs.getStringSet("yourKey", null);
List<String> sample=new ArrayList<String>(set);

N'utilisez pas Hashset pour cela. Cela changera l'ordre de Arraylist. Utilisez Gson à la place de . Si vous souhaitez utiliser Hashset, vous devrez sérialiser et désérialiser les ressources. 

0