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 :

Rendre visible un EditText en fonction d'un switch button


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de Paprenelle
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2016
    Messages : 32
    Par défaut Rendre visible un EditText en fonction d'un switch button
    Bonjour,

    Voilà je développe une petite application et dans mon application je souhaite pouvoir en fonction d'un switch button pouvoir faire apparaître ou non un EditText. J'ai essayer quelque chose sauf que quand j'exécute le code rien ne se passe au niveau de l'application, le changement d'état du switch ne fais pas apparaître mon champs. Je voudrais savoir comment faire ?

    Voici mon bout de code :

    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
    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_create_customer);
     
            SwitchButton switchButtonFidelity = (SwitchButton)findViewById(R.id.switchButtonFidelity);
     
            switchButtonFidelity.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    EditText editText = (EditText) findViewById(R.id.editTextCreateCustomerCardNumber);
                    editText.setVisibility(editText.VISIBLE);
                }
            });
        }
    Bonne journée, Paprenelle

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Il te faudrait un p'tit test en plus pour passer de GONE à VISIBLE ou de VISIBLE à GONE, mais en soit, la logique est bonne.
    Quoi que... Ce n'est pas un "onClickListener" qu'il faudra utiliser, mais un OnCheckedChangeListener de mémoire.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Membre averti Avatar de Paprenelle
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2016
    Messages : 32
    Par défaut
    Après quelques recherches et un peu de logique j'ai réussi à ressortir un code comme celui ci qui fonctionne très bien ou comme tu as dit je fais une vérification et je passe par un "setVisibility"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       final SwitchButton switchButtonFidelity = (SwitchButton) findViewById(R.id.switchButtonFidelity);
     
            switchButtonFidelity.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
     
                    EditText editText = (EditText) findViewById(R.id.editTextCreateCustomerCardNumber);
                    editText.setVisibility(isChecked ? View.VISIBLE : View.INVISIBLE);
     
                    TextView textView = (TextView) findViewById(R.id.textViewCreateCustomerScan);
                    textView.setVisibility(isChecked ? View.VISIBLE : View.INVISIBLE);
                }
     
            });
    Merci de ton aide
    Paprenelle.

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    J'vais p'têt enfoncer une porte ouverte, mais as-tu bien la nuance entre la visibilité INVISIBLE et GONE ?
    INVISIBLE fait disparaître le widget de l'écran, mais il occupe toujours la même place (donc est compté pour les placements des composants).
    GONE fait disparaître de l'écran, et il n'occupe plus de place (donc n'est pas compté pour les placements des composants).

    Actuellement, je n'ai pas trouvé de cas où INVISIBLE me servait (ou p'têt une fois ou deux, en 3 ans d'application).

    Nota : c'est un poil plus complexe que ça dans la réalité, mais l'idée y est.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    Membre averti Avatar de Paprenelle
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2016
    Messages : 32
    Par défaut
    J'utilise "View.INVISIBLE" car je me sert de mon switch button pour aligner un bouton en dessus donc si je le passe en GONE mon bouton va ce déplacer car je galère à faire que mon bouton en dessous reste en bas même avec un "layout_alignbottom" il ce déplace quand même c'est pour ça que j'utilise INVISIBLE et pas GONE.

  6. #6
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Donc t'as bien la nuance =)
    Tant mieux ^^

    Ps : n'oublie pas le bouton "résolu" si ton sujet l'est
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 24/03/2015, 09h15
  2. [AC-2010] Rendre visible une information en fonction d'une checkbox
    Par ultima67 dans le forum VBA Access
    Réponses: 4
    Dernier message: 25/10/2012, 06h06
  3. Réponses: 4
    Dernier message: 20/04/2008, 15h46
  4. Réponses: 2
    Dernier message: 16/04/2008, 22h58
  5. Réponses: 3
    Dernier message: 12/03/2005, 21h30

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