Comment obtenez-vous la valeur par défaut d'une préférence Android définie en XML? Je ne veux pas répéter la définition de la valeur par défaut dans le code et les préférences XML.Valeur par défaut de la préférence Android
Répondre
Vous pouvez définir la valeur par défaut dans les ressources (/values/bool.xml
):
<resources>
<bool name="mypreference_default">true</bool>
</resources>
Utilisez la valeur dans le preferences.xml
:
<CheckBoxPreference
android:defaultValue="@bool/mypreference_default"
android:key="mypreference"
android:title="@string/mypreference_title" />
Ensuite, utilisez dans le code:
SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(context);
Boolean value = context.getResources().getBoolean(R.bool.mypreference_default);
Boolean b = p.getBoolean("mypreference", value);
Belle façon de le faire. Merci d'avoir partagé! – pilcrowpipe
C'est exactement ce que je cherchais, merci. Un conseil supplémentaire: Définissez les ressources qui ne sont pas dans strings.xml mais dans un fichier séparé (par exemple, constants.xml) pour éviter la localisation. – schnatterer
@schnatterer: déplacer les chaînes dans un fichier différent n'empêche pas la localisation. Le nom de fichier 'strings.xml' est juste une convention. Toute ressource peut être localisée en la plaçant dans le sous-dossier 'res /' correct. Bien que placer les paramètres par défaut dans un fichier de ressources distinct est probablement une bonne idée. –
Vous devez d'abord définir les valeurs par défaut dans votre fichier XML de préférence. Ensuite, vous pouvez remplir les préférences avec des valeurs par défaut dans votre activité principale en appelant:
PreferenceManager.setDefaultValues(this, R.xml.preference, false);
Lorsque vous avez besoin de récupérer une certaine préférence il suffit d'appeler:
int value = prefs.getInt("key", null);
Étant donné que vos préférences sont peuplées vous ne serez pas obtenir la valeur null
.
Cela ne protège pas encore contre la situation possible où quelqu'un la ligne supprime une préférence de la XML et oublie de mettre à jour le code Java le demandant. Dans cette situation, l'application sera toujours compiler, mais vous obtiendrez une exception NullPointerException. – idolize
Oui, c'est vrai, mais un test fonctionnel doit être écrit pour tester si toutes les préférences nécessaires sont extraites de XML. – pixel
cela n'a pas fonctionné du tout pour moi. les valeurs par défaut n'ont pas été définies après l'appel de cette méthode. – moonlightcheese
Créer integer.xml
sous res/values
pour stocker des constantes entières.
En prefereces.xml
référence "@integer/default_brightness"
Dans le code context.getResources().getInteger(R.integer.default_brightness)
- 1. Android CheckBoxPreference Valeur par défaut
- 2. Préférence partagée Android Édition
- 3. Problème de préférence booléenne Android
- 4. android Préférence
- 5. Android: préférence Style de
- 6. Enregistrer la préférence d'application Android
- 7. effacer la valeur par défaut
- 8. Valeur DropDownList Valeur par défaut
- 9. Modifier la valeur par défaut de EnableViewState
- 10. DatePicker valeur par défaut
- 11. Préférence partagée Android
- 12. Valeur par défaut de stockage
- 13. Pour vérifier la valeur par défaut, sélectionnez la valeur!
- 14. android: la langue par défaut est
- 15. UserControl Valeur par défaut dans la propriété
- 16. jQuery Valider: Pas la valeur par défaut
- 17. Définir document.title sur la valeur par défaut
- 18. Sauvegarder la valeur par défaut dans l'iPhone
- 19. getIntExtra renvoie toujours la valeur par défaut
- 20. FormsAuthentication.GetRedirectUrl renvoie toujours la valeur par défaut
- 21. Valeur par défaut pour la liste déroulante
- 22. Test d'égalité à la valeur par défaut
- 23. Valeur par défaut dans la liaison WPF
- 24. La valeur par défaut pour KeyValuePair
- 25. Databinding - la mise en valeur par défaut
- 26. Valeur par défaut pour textarea
- 27. AppSettings fallback/valeur par défaut?
- 28. Rails i18n valeur par défaut
- 29. resoultion par défaut pour android lanceur icône
- 30. Procédure stockée Valeur par défaut
publier votre fichier de préférences xml, voulez-vous un PREFERENCE – Jorgesys