Initialiser les préférences à partir de XML dans l'activité principale

Mon problème est que lorsque je démarre l'application et que l'utilisateur n'a pas ouvert mon PreferenceActivity alors, lorsque je les récupère, n'obtiennent aucune valeur par défaut définie dans mon fichier preference.xml.

Fichier preference.xml:

  • Erreur Gradle lors de la création d'un nouveau projet avec Android Studio
  • Comprendre un support multiplier les écrans
  • Pourquoi les applications Android ne fournissent-elles pas une option "Quitter"?
  • Trouver la date de péremption de la banque de clés Android
  • Quel est le bon moyen de mettre en œuvre un widget Android avec un contenu tiré dynamiquement?
  • Comment passer d'un serveur MySql à une application Android?
  •  <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:key="applicationPreference" android:title="@string/config" > <ListPreference android:key="pref1" android:defaultValue="default" android:title="Title" android:summary="Summary" android:entries="@array/entry_names" android:entryValues="@array/entry_values" android:dialogTitle="@string/dialog_title" /> </PreferenceScreen> 

    Extrait de mon activité principale (méthode onCreate ):

      SharedPreferences appPreferences = PreferenceManager.getDefaultSharedPreferences(this); String pref1 = appPreferences.getString("pref1", null); 

    En résultat, je finis par une valeur null .

  • Comment exécuter des tests unitaires avec Android Studio
  • Quelle est la différence entre ACTION_SENDTO et ACTION_VIEW lors de l'envoi de sms?
  • Mettre en place une bibliothèque pour suivre tous les événements dans une application
  • Comment le code du modem parle-t-il du code Android?
  • Faible performance lors de l'exécution eglSwapBuffer et eglMakeCurrent
  • L'émulateur de studio Android ne parvient pas à démarrer avec le message d'erreur associé à la limite de mémoire
  • 3 Solutions collect form web for “Initialiser les préférences à partir de XML dans l'activité principale”

    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. Définir l'argument readAgain pour false signifie que cela ne définira que les valeurs par défaut si cette méthode n'a jamais été appelée dans le passé, donc vous n'avez pas à vous soucier de remplacer les paramètres de l'utilisateur chaque fois que votre Activity est créée.

    Je serai bref. 🙂

    Strings.xml (en fait, j'ai prefs.xml exclusivement pour les préférences):

     <string name="pref_mypref_key">mypref</string> <string name="pref_mypref_default">blah</string> 

    Preferences.xml :

     android:key="@string/pref_mypref_key" android:defaultValue="@string/pref_mypref_default" 

    MyActivity.java :

     String myprefVal = prefs.getString(getString(R.string.pref_mypref_key), getString(R.string.pref_mypref_default)); 

    Votre appel à getString() est null comme deuxième paramètre. Changez-le pour être la valeur par défaut que vous voulez.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.