Mon problème est que lorsque je lance l’application et que l’utilisateur n’a pas ouvert mon PreferenceActivity
, lorsque je les récupère, je n’obtiens aucune valeur par défaut définie dans mon fichier preference.xml.
fichier preference.xml:
Extrait de mon activité principale (méthode onCreate
):
SharedPreferences appPreferences = PreferenceManager.getDefaultSharedPreferences(this); Ssortingng pref1 = appPreferences.getSsortingng("pref1", null);
En résultat, je me retrouve avec une valeur null
.
Dans onCreate()
de votre Activity
principale, appelez simplement la méthode PreferenceManager.setDefaultValues()
.
PreferenceManager.setDefaultValues(this, R.xml.preference, false);
Cela lira votre fichier preference.xml
et définira les valeurs par défaut définies ici. readAgain
argument readAgain
sur false
, cela définira uniquement les valeurs par défaut si cette méthode n’a jamais été appelée auparavant. Vous n’avez donc pas à vous soucier de remplacer les parameters de l’utilisateur à chaque création de votre Activity
.
Je serai bref 🙂
ssortingngs.xml (en fait, j’ai prefs.xml exclusivement pour les préférences):
mypref blah
preferences.xml :
android:key="@ssortingng/pref_mypref_key" android:defaultValue="@ssortingng/pref_mypref_default"
MyActivity.java :
Ssortingng myprefVal = prefs.getSsortingng(getSsortingng(R.ssortingng.pref_mypref_key), getSsortingng(R.ssortingng.pref_mypref_default));
Votre appel à getSsortingng()
a la valeur null
comme second paramètre. Modifiez cette valeur pour qu’elle soit la valeur par défaut souhaitée.