J'ai Listpreferences dans mon application. Ils ne semblent pas être réglés à leurs valeurs par défaut juste après l'installation - ils semblent être nulles. J'essaie de comprendre pourquoi mes préférences par défaut ne sont pas définies juste après l'installation. Dans mon code principal je:Android: SharedPreference: Les paramètres par défaut ne sont pas définis au démarrage
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
InUnits = sp.getString("List1", "defValue");
InAngs = sp.getString("List2", "defValue");
OutUnits = sp.getString("List3", "defValue");
OutAngs = sp.getString("List4", "defValue");
Juste après le code ci-dessus exécute, chaque variable contient « ValeurDéfaut » au lieu des valeurs réelles que j'ai assigné dans mon ListPreference ci-dessous.
Mon fichier xml de préférences s'appelle "settings.xml". Voici ce que l'un des ListPreferences regarde là comme:
<ListPreference
android:key="List1"
android:title="Input: Alph"
android:summary="Choose Alph or Ralph"
android:entries="@array/inputAlph"
android:entryValues="@array/input_Alph_codes"
android:dialogTitle="Input Alph"
android:defaultValue="ININ"/>
Voici ce que certains de mon fichier strings.xml ressemble:
<string-array name="inputUnits">
<item>Alph</item>
<item>Ralph</item>
</string-array>
<string-array name="input_Alph_codes">
<item>ININ</item>
<item>INMM</item>
</string-array>
Quand je vais au menu, puis les paramètres, je peux voir mon paramètres par défaut vérifiés (radiobuttoned). Puis quand je reviens du menu des paramètres à mon écran principal - tout va bien - pour la vie! ... puis chaque var ci-dessus reçoit la valeur par défaut appropriée. Cela ne se produit que lorsque j'applique mon application pour la première fois sur le téléphone. Après que je suis allé à l'écran des paramètres une fois, puis à droite, l'application est bien et accepte tous les changements de paramètres. Par ailleurs, comme vous pouvez le voir, "List1" est la clé android: dans un fichier nommé settings.xml dans mon dossier res/xml.
Une correction ci-dessus: Dans mon exemple de code strings.xml ci-dessus, le nom chaîne de tableau ne doit pas lire "inputUnits" mais aurait dû être:
Allan
duplication possible de [Préférences Android: Comment charger les valeurs par défaut lorsque l'utilisateur n'a pas utilisé l'écran des préférences?] (Http://stackoverflow.com/questions/2691772/android-preferences-how-to-load- the-default-values-when-the-utilisateur-hasnt-used-th) –