bonjour,
j'ai besoin de sauvegarder une adresse IP sous la forme d'une string.
J'ai donc une activité dédiée avec fragment et layout pour proposer un EditTextPreference à l'utilisateur.
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 SettingsActivity extends PreferenceActivity
        implements SharedPreferences.OnSharedPreferenceChangeListener
{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Display the fragment SettingsFragment as the main content.
        getFragmentManager().beginTransaction()
                .replace(android.R.id.content, new SettingsFragment())
                .commit();
    }
 
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
 
    }
}
La classe SettingsFragment correspondante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
public class SettingsFragment extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        // Load the preferences from an XML resource
        addPreferencesFromResource(R.xml.preferences);
    }
}
Et le xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <EditTextPreference
        android:title="adresse Ip du serveur"
        android:id="@id/addrIP"
        android:key="EdTPrefs"
        android:defaultValue="0.0.0.0"
        android:text="0.0.0.1"
        />
</PreferenceScreen>
L' activité SettingsActivity s'affiche, j'ai le clavier virtuel pour entrer un adresse IP mais je n'arrive pas du tout à la lire pour l'afficher dans le TextView puis stocker dans une préférence.
Je n'arrive donc pas à rentrer dans la méthode onSharedPreferenceChanged.
J'ai lu beaucoup de choses à propos du widget EditTextPreference mais je ne m'en sors pas.
Merci de votre aide.