IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Manipuler un EditTextPreference pour sauvegarder une préférence


Sujet :

Android

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2008
    Messages : 289
    Points : 151
    Points
    151
    Par défaut Manipuler un EditTextPreference pour sauvegarder une préférence
    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.

  2. #2
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Points : 634
    Points
    634
    Par défaut
    Bonjour rdTech,

    Tu y es presque, seulement que tu as oublié d'enregistrer ton Activité courant dans la liste des écouteurs.Tu pourrais le faire dans la méthode onResume() et l'enlever dans la méthode onPause().
    Enregistrement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            public void onResume(){
    PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this);
    }
    Suppression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            public void onPause(){
    PreferenceManager.getDefaultSharedPreferences(this).unregisterOnSharedPreferenceChangeListener(this);
    }
    __salut !
    Aujourd'hui apprenant, demain appreneur.
    N'accuse pas le puits d'être trop profond,
    c'est peut-être ta corde qui est trop courte

  3. #3
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2008
    Messages : 289
    Points : 151
    Points
    151
    Par défaut
    bonjour IanKoande,
    une petite semaine de vacances pour reposer le neurone. Une relecture de la doc suite à ta réponse et ça fonctionne!
    Merci beaucoup et salutations à toi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/11/2007, 15h47
  2. Pb pour sauvegarder une image
    Par krina85 dans le forum VBA Access
    Réponses: 5
    Dernier message: 20/09/2007, 08h30
  3. Réponses: 3
    Dernier message: 10/06/2007, 21h53
  4. Réponses: 3
    Dernier message: 11/11/2005, 12h59
  5. [PDE] Problème pour sauvegarder une modif dans un éditeur
    Par simsky dans le forum Eclipse Java
    Réponses: 11
    Dernier message: 11/08/2005, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo