bonjour,
je tente de manipuler des préférences en utilisant un fragment. Pour en maîtriser le fonctionnement, je travaille d'abord sur un projet dans lequel je me suis fixé un fragment avec un EditTextPreference pour en afficher la valeur.
Mon fichier preferences.xml:
Mon fichier SecondActivity qui met en place le fragment
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <EditTextPreference android:key="pref_ipaddr" android:title="@string/pref_ipaddr" android:summary="@string/pref_ipaddr_summ" android:textSize="35sp" android:paddingTop="100dp" android:inputType="numberDecimal" android:defaultValue="0.0.0.0" /> </PreferenceScreen>
Mon fichier SettingsFragment:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public class SecondActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); getFragmentManager().beginTransaction() .replace(android.R.id.content, new SettingsFragment()) .commit();
A l'exécution, dans la fenêtre console, j'ai toujours l'affichage:
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 public class SettingsFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource (le fichier res/xml/preferences.xml) addPreferencesFromResource(R.xml.preferences); //Afficher les préférences SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); if(prefs.contains("pref_ipaddr")) System.out.println("prefs contains pref_ipaddr"); else System.out.println("prefs don't contains pref_ipaddr"); System.out.println("preference file ipaddr = " + prefs.getString("pref_ipaddr", "Houps!")); }
prefs contains pref_ipaddr
preference file ipaddr = true
Je ne comprend pas le "true". Je m'attends à avoir la valeur 0.0.0.0 qui est celle de l'attribut android:defaultValue de l'EditTextPreference.
Si quelqu'un a une idée, je prend.
Deuxio, si je rajoute des EditTextPreference dans le preferences.xml, comment dois-je m'y prendre pour afficher le nombre de préférences et leur contenu respectif ?
Merci.
Partager