2016-12-31 4 views
1

Le code suivant est utilisé pour activer le CheckBox afin de rendre l'utilisateur capable de voir son mot de passe:Je ne comprends pas le motif de CheckBox cliquez avec le nouveau paramètre

passwordCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 

    @Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 

     if (!isChecked) { 
      passwordEditText.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD); 
      passwordConfirmEditText.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD); 
     } else { 
      passwordEditText.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 
      passwordConfirmEditText.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 
     } 
    } 
}); 

Voici ce que je comprends ci-dessus: il y a un CheckBox nommé passwordCheckBox, je définirais un écouteur à la CheckBox dès que je clique dessus pour (un) Basculer le CheckBox, si ce n'est pas vérifié, passwordEditText n'apparaîtra pas comme caractères, si c'est Le mot de passe coché apparaîtra sous forme de caractères. Si je me trompe dans ce que je suppose, corrigez-moi s'il vous plaît.

Je ne comprends pas le modèle de ce code, Comment le paramètre "isChecked" qui devrait être une nouvelle variable (?), Être compris par l'application où le isChecked est égal à "True" (Et à la en même temps, il est entendu que c'est l'entrée de l'utilisateur)

+2

'isChecked' est un argument qui sera fourni par OS lorsque l'auditeur contrôle est tiré, est-il plus clair? –

+0

Pourriez-vous me fournir un lien avec la source (ou l'explication) afin que je puisse mieux comprendre? – hellohello

+0

Je ne suis pas sûr d'avoir suivi votre question. Est-ce que c'est la construction '! isChecked' que vous ne comprenez pas? son juste une forme courte de 'isChecked = true' –

Répondre

1

Ceci est la réponse: @hellohello Cette construction est appelée une classe anonyme. OnCheckedChanged n'est pas appelé par votre code, il est appelé par le code interne Android uniquement lorsque l'utilisateur interagit avec la case à cocher. - Christian Strempfer

merci pour d'autres commentaires