49 votes

Android : Comment définir la propriété du mot de passe dans un texte d'édition ?

J'ai besoin de créer un formulaire de connexion avec les champs 'nom d'utilisateur' et 'mot de passe' et deux boutons 'connexion' et 'annulation' dans mon application Android.

J'utilise un dialogue d'alerte avec un texte d'édition à l'intérieur.

Voici le code que j'ai utilisé pour créer le mot de passe edittext..

     final EditText Password = new EditText(this);
     Password.setGravity(Gravity.CENTER);
     Password.setHint("Password");
     Password.setWidth(200);

     Password.setTransformationMethod(new PasswordTransformationMethod());
     login_alert.addView(Password);

Mon problème est que le texte brut est affiché à la place des 'points' lorsque j'ouvre un clavier logiciel pour modifier le mot de passe. (Il est affiché sous forme de points lorsqu'il n'est pas en mode pavé numérique).

Quelqu'un peut-il suggérer une solution ?

97voto

ernazm Points 5289
Password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

Celui-là marche pour moi.
Mais il faut regarder le commentaire d'Octavian Damiean, il a raison.

27voto

Basil Points 1669

Cette fonction est obsolète

Dans le xml de EditText, il faut inclure cet attribut : Android:password="true"

Modifier

android:inputType="textPassword"

13voto

user2552045 Points 38

Voici une nouvelle façon de mettre des points dans les mots de passe.

<EditText
    android:id="@+id/loginPassword"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="textPassword"
    android:hint="@string/pwprompt" /

ajouter Android:inputType = "textPassword" (mot de passe)

6voto

LuxuryMode Points 11381

Vous devez utiliser PasswordTransformationMethod.getInstance() au lieu de new PasswordTransformationMethod() .

4voto

voghDev Points 161

La seule méthode qui a fonctionné pour moi en utilisant du code (pas du XML) est celle-ci :

etPassword.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
etPassword.setTransformationMethod(PasswordTransformationMethod.getInstance());

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X