bonjour,
j'ai besoin de SharedPreferences pour stocker l'adresse IP d'un serveur. J'ai beaucoup lu ce qui tourne autour et dupliqué pas mal de code mais je n'arrive pas à stocker cette adresse IP.
J'ai donc un layout via un PreferenceScreen stocké dans le fichier res/xml/preferences.xml:
Je suppose qu'en l'état la paire clé/valeur est assurée par les attributs key/defaultValue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <EditTextPreference android:layout_width="match_parent" android:layout_height="match_parent" android:key="ip" android:defaultValue="127.0.0.1" > </EditTextPreference> </PreferenceScreen>
Une classe PreferencesActivity:
Dans ma MainActivity j'ai inséré la ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 public class PreferencesActivity extends PreferenceActivity { private String KEY_PREF_IP = "ip"; private String PREFS_NAME = "preferences"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); String pref_ip = settings.getString(KEY_PREF_IP, "hello"); System.out.println("pref_ip = " + pref_ip); SharedPreferences.Editor editor = settings.edit(); editor.putString("0.0.0.0", KEY_PREF_IP); editor.commit(); pref_ip = settings.getString(KEY_PREF_IP, "hello"); Toast toast = Toast.makeText(this, pref_ip, Toast.LENGTH_SHORT); toast.show(); } }
Je pensais voir dans un premier temps la valeur par défaut 127.0.0.1 puis 0.0.0.0 dans le toast mais j'ai systématiquement "hello"...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
Le commit se passe bien puisqu'il me retourne true.
Comment savoir si c'est bien le fichier preferences.xml qui est accédé?
Sinon, quoi t'est-ce qui dysfonctionne?
Merci.
Partager