2017-06-05 3 views
-3

J'ai un texte d'édition dans android pour un champ de mot de passe. Le type d'entrée pour le texte d'édition est mot de passe.À, le droit du texte d'édition, un bouton qui affichera le mot de passe lorsque le bouton est clicked.I ont mis en œuvre la partie en utilisant l'événement motion à android.Below est le code « Afficher le mot » qui fonctionne correctement:Implémenter l'événement de mouvement dans le bouton android pour afficher le mot de passe sur Edittext avec des clics de bouton alternatifs

EditText passwordET; 
Button showPassword; 

passwordET = (EditText) findViewById(R.id.passwordET); 
showPassword = (Button) findViewById(R.id.showpasswordBtn); 

showPassword.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View view, MotionEvent motionEvent) { 

       switch (motionEvent.getAction()) { 
        case MotionEvent.ACTION_DOWN: 
         passwordET.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 
         return true; 

        case MotionEvent.ACTION_UP: 
         passwordET.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); 
         return true; 
       } 
       return true; 
      } 
     }); 

le code ci-dessus fonctionne bien pour le cas où l'utilisateur clique sur le bouton, le mot de passe est affiché et comme l'événement tactile du bouton est supprimé, le texte devient à nouveau le champ Mot de passe. Mais, ce que je veux, c'est que si le bouton est cliqué une fois, le texte d'édition montrera le mot de passe et le mot de passe restera affiché jusqu'à ce que le bouton soit cliqué de nouveau. Ainsi, quand le bouton est cliqué encore, le texte d'édition changera son état au mot de passe tapez à nouveau.Peut-être quelqu'un s'il vous plaît laissez-moi savoir comment procéder?

+0

meilleure façon de vérifier ce ans: https://stackoverflow.com/A/39022642 –

+0

@JaydeepPatel En fait je le veux avec un bouton qui aura le texte écrit comme "SHOW" qui montrera le mot de passe et quand le mot de passe est montré , l'état du bouton changera à "HIDE" et vice-versa. – Pranami

+0

l'action de mouvement est pour faire défiler vers le bas etc. https://developer.android.com/reference/android/view/MotionEvent.html –

Répondre

0

utilisation ci-dessous le code:

un drapeau Define,

boolean isPassWordShowing = false; 

Le clic de bouton ShowPassword:

showPassword.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if(isPassWordShowing) 
      { 
       passwordET.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); 
       isPassWordShowing = false; 
      } 
      else 
      { 
       passwordET.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 
       isPassWordShowing = true; 
      } 


     } 
    }); 
+0

Merci beaucoup.C'est ce que je cherchais. Merci encore:) – Pranami