Voici le problème auquel je suis confronté: Dans mon application, j'ai plusieurs préférences stockées dans sharedPreferences qui enregistrent différents paramètres de l'application. Ce sont des chaînes. Comme je souhaite que l'application commence par des valeurs par défaut pour ces paramètres, dans onCreate, je construis un objet "Setting" pour chaque paramètre dans lequel je vérifie si sharedPreference est null et si c'est le cas je mets la valeur par défaut dans la sharedPreference.Comportement étrange pour ListPreferences
Setting(int setting, String default)
{
storedPref=sharedPref.getString(getText(setting),null);
if(storedPref==null)
{
SharedPreferences.Editor edit=sharedPred.edit()
edit.putString(getText(setting),default);
edit.comit
}
}
Les vues associées à ces paramètres sont ListPreferences(). Lors de la première ouverture de l'application, ils sont censés afficher une liste d'options, dans laquelle l'option sélectionnée est la valeur par défaut, mais il arrive parfois qu'aucune option n'est sélectionnée, pas même celle par défaut, ce qui n'est pas prévu. Les listPreferences sont construites en XML, en définissant un tableau à la "balises d'entrées" et à la "balise de valeurs". Je ne suis pas vraiment sûr, que dois-je passer au constructeur de l'objet Setting pour la valeur par défaut, un membre du tableau entrées, ou un quelque chose à partir des valeurs un !!! Si je passe un membre des entrées, Listpreferences aura le comportement attendu et certaines auront le comportement décrit ci-dessus. Si je fais le contraire et que je passe quelque chose du tableau des valeurs, la même chose arrive! Quelqu'un at-il une idée de pourquoi ce comportement étrange?
Oui, mais que cela ne signifie pas que la valeur par défaut sera sauvé, ce qui est ce que je dois. –