J'essaie de modifier les valeurs de la liste dans les préférences partagées, mais quelque chose ne va pas.
Ma préférence partagée est :
public class StepsData {
static SharedPreferences data;
static SharedPreferences.Editor editor;
static final int VALUE_KEY = 0;
static final List<String> LIST_KEY= new Vector<String>();
}
J'utilise SharedPref by :
StepsData.data = getApplicationContext().getSharedPreferences("userData", MODE_PRIVATE);
StepsData.editor = StepsData.data.edit();
Si je veux modifier ou obtenir une valeur de VALUE_KEY, tout fonctionne correctement :
int step = StepsData.data.getInt(String.valueOf(VALUE_KEY), 0);
editor.putInt(String.valueOf(VALUE_KEY), 0).apply();
mais j'ai un problème avec l'utilisation de List, mon code pour obtenir la valeur est :
List<String> myList = (List<String>) data.getStringSet(String.valueOf(LIST_KEY),null);
et pour la suppression :
List<String> clearList = new Vector<String>();
editor.putStringSet(String.valueOf(LIST_KEY), (Set<String>) clearList).apply();
mais il y a une NullPointerException. Quelle est la meilleure façon d'utiliser quelque chose comme ".clear()" sur la liste de SharedPreference et comment est-il possible d'obtenir des valeurs à partir de cette liste et de la taille ?