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:
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 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
 
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();
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
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!"));
    }
A l'exécution, dans la fenêtre console, j'ai toujours l'affichage:
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.