2017-09-23 3 views
0

Les instructions Android doivent désormais définir les paramètres du téléphone et de la tablette, en utilisant Fragments pour différentes catégories/groupe de paramètres.
Le SettingsActivity créé par Android Studio crée un fichier XML pour chacun des fragments de paramètres:setDefaultValues ​​lors de l'utilisation de la structure des paramètres Fragment

pref_general.xml 
pref_notifications.xml 

Alors, comment la méthode setDefaultValues(context,resId,readAgain) est censé être utilisé pour créer le premier fichier de préférences partagées?

Si vous mettez dans votre code, sur MainACtivity

PreferenceManager.setDefaultValues(this, R.xml.pref_general, false); 
PreferenceManager.setDefaultValues(this, R.xml.pref_notifications, false); 

seule la première ligne va créer un fichier de préférences partagé, avec uniquement les paramètres définis sur ce fragment.
La deuxième ligne ne sera pas exécutée (car le paramètre readAgain est faux, et la méthode a été exécutée déjà par la première ligne)

D'autre part, la mise en readAgain à true exécutera setDefaultValues chaque fois.

Répondre

0

Vous pouvez utiliser android:defaultValue dans un fichier XML.

android:defaultValue: La valeur par défaut de la préférence, qui être réglée soit si la persistance est éteint ou la persistance est activée et la préférence ne se trouve pas dans le stockage persistant.

<SwitchPreferenceCompat 
    android:key="key1" 
    android:title="Switch Preference" 
    android:summary="Switch Summary" 
    android:defaultValue="true" /> 

Ou Programatically il peut être fait de cette façon:

//this returns whatever preference was set for key1 in PreferencesPage 
or the default value if nothing was set 

sharedPreferences.getBoolean("key1", true)); 
+0

Votre première suggestion ne crée pas un fichier sharepreferences, 'setDefaultValues ​​()' fait. Votre deuxième suggestion est peu pratique si vous avez beaucoup de paramètres, et vous devez ajouter du code chaque fois que vous ajoutez un nouveau paramètre. Et enfin, la question n'était pas ** Comment initialiser les préférences? ** mais comment utiliser 'SetDefaultValues ​​()' le long des nouvelles recommandations pour les fragments de paramètres – ilomambo