Vous pouvez modifier dynamiquement les attributs d'un TextView. Si vous définissez XML Atrribute android:password
sur true, la vue affichera des points si vous la définissez sur false, le texte est affiché.
Avec la méthode setTransformationMethod, vous devriez pouvoir modifier ces attributs à partir du code. (Avertissement: je n'ai pas testé si la méthode fonctionne toujours après l'affichage de la vue. Si vous rencontrez des problèmes avec cela, laissez-moi un commentaire pour que je le sache.)
L'exemple de code complet serait
yourTextView.setTransformationMethod(new PasswordTransformationMethod());
pour masquer le mot de passe. Pour afficher le mot de passe, vous pouvez définir l'une des méthodes de transformation existantes ou implémenter une TransformationMethod vide qui ne fait rien avec le texte d'entrée.
yourTextView.setTransformationMethod(new DoNothingTransformation());
setTransformationMethod(null)
.C'est vraiment facile à réaliser depuis la Support Library v24.2.0.
Ce que vous devez faire est juste:
Ajoutez la bibliothèque de conception à vos dépendances
Utiliser
TextInputEditText
en conjonction avecTextInputLayout
L'
passwordToggleEnabled
attribut fera l'affaire!Dans votre mise en page racine, n'oubliez pas d'ajouter
xmlns:app="http://schemas.android.com/apk/res-auto"
Vous pouvez personnaliser le basculement de votre mot de passe en utilisant:
app:passwordToggleDrawable
- Dessiné à utiliser comme icône de bascule de visibilité d'entrée de mot de passe.app:passwordToggleTint
- Icône à utiliser pour la bascule de visibilité d'entrée de mot de passe.app:passwordToggleTintMode
- Mode de fusion utilisé pour appliquer la teinte d'arrière-plan.Plus de détails dans la documentation TextInputLayout .
Pour AndroidX
Remplacer
android.support.design.widget.TextInputLayout
parcom.google.android.material.textfield.TextInputLayout
Remplacer
android.support.design.widget.TextInputEditText
parcom.google.android.material.textfield.TextInputEditText
la source
android:text
attribut activéTextInputEditText
. Vous pouvez toujours soulever un problème sur Google Issues Tracker pour Androidapp:passwordToggleDrawable
(obsolète) ouapp:endIconDrawable
ensuite utiliser un dessin personnalisé comme<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ic_eye_close" android:state_checked="true"/> <item android:drawable="@drawable/ic_eye_open"/> </selector>
je pense que Google devrait corriger ce problème. Bonne discussionPour afficher les points au lieu du mot de passe, définissez la méthode PasswordTransformationMethod:
bien sûr, vous pouvez le définir par défaut dans votre élément edittext dans la mise en page xml avec
Pour afficher à nouveau le mot de passe lisible, transmettez simplement null comme méthode de transformation:
la source
android:password
est désormais obsolète et vous devriez l'utiliser à laandroid:inputType
place.editText.getSelectionStart()
eteditText.getSelectionEnd()
pour enregistrer la position du curseur eteditText.setSelection(start, end)
pour la restaurer.Montrer:
Cacher:
Après chacun d'entre eux, le curseur est réinitialisé, donc:
la source
Vous pouvez utiliser
app:passwordToggleEnabled="true"
voici l'exemple ci-dessous
la source
app:endIconMode="password_toggle"
.Utilisez la case à cocher et modifiez le type d'entrée en conséquence.
la source
...
...
la source
C'est du travail pour moi, cela vous aidera certainement
la source
Je sens que je veux répondre à cette question même là de bonnes réponses,
selon la documentation TransformationMethod faire notre mission
Remarquez que j'utilise un couteau à beurre, mais c'est la même chose si l'utilisateur vérifie le mot de passe
la source
Je suis capable d'ajouter le code ShowPassword / HidePassword avec seulement quelques lignes, autonome dans un bloc:
la source
J'ai eu le même problème et c'est très facile à mettre en œuvre.
Tout ce que vous avez à faire est d'encapsuler votre champ EditText dans un (com.google.android.material.textfield.TextInputLayout) et dans cet add (app: passwordToggleEnabled = "true").
Cela montrera l'œil dans le champ EditText et lorsque vous cliquez dessus, le mot de passe apparaît et disparaît lorsque vous cliquez à nouveau.
la source
la source
Sous une forme très simple:
J'espère que ça aide.
la source
Vous pouvez afficher / masquer le mot de passe en utilisant ce code ci-dessous:
CODE XML:
CODE JAVA:
la source
Essaye ça:
Définissez d'abord un drapeau comme global comme ceci:
Et paramétrez l'auditeur pour qu'il gère le clic sur le bouton Afficher et masquer le mot de passe:
la source
Essayez le projet https://github.com/maksim88/PasswordEditText sur github. Vous n'avez même pas besoin de changer votre code Java en l'utilisant. Changez juste
Éditer le texte
tag à
com.maksim88.passwordedittext.PasswordEditText
dans votre fichier XML.
la source
afficher et masquer le mot de passe Edit_Text avec case à cocher
XML
code java
la source
Avez-vous essayé avec setTransformationMethod? Il est hérité de TextView et souhaite un TransformationMethod comme paramètre.
Vous pouvez en savoir plus sur TransformationMethods ici .
Il a également quelques fonctionnalités intéressantes, comme le remplacement de personnage.
la source
Ce que j'ai fait était de
Vous pouvez consulter cette vidéo pour des étapes et des explications plus détaillées https://youtu.be/md3eVaRzdIM
J'espère que ça aide :)
la source
Voici ma solution sans utiliser TextInputEditText et la méthode de transformation.
XML
Code Java
la source
Selon cette source , si vous avez migré votre projet vers AndroidX, vous pouvez remplacer
compile "com.android.support:design:24.2.0"
avec
implementation "com.google.android.material:material:1.0.0"
Ensuite, tout ce que vous avez à faire est de mettre le code ci-dessous dans votre fichier de mise en page:
Plus d' informations sur le matériel
TextInputLayout
se trouve ici .Pour cette source , il est recommandé de migrer vers AndroidX à partir de la bibliothèque de support Android:
la source
Au début, il s'agit de l'écran chargé avec une visibilité d'actif de vecteur d'image
en cliquant dessus, la visibilité de cette image sera désactivée
code pour le commutateur de mot de passe ci-dessus (code xml)
Code Java pour l'utilisation des boutons
la source
En XML, faites comme ça
la source
Mon extension Kotlin. écrire une fois utiliser partout
Vous pouvez conserver cette méthode dans n'importe quel fichier et l'utiliser partout, utilisez-la comme ceci
où l'on clique sur ivShowPassword imageview (eye) et etPassword est Editext
la source
Une bonne solution. Configurez un bouton, puis utilisez ce code:
la source
Ajoutez cette méthode:
L'appeler basculera entre l'état de type d'entrée (vous pouvez changer la transformation sur une seule ligne en votre favori). Exemple d'utilisation:
la source
la source
la source
la source