Dans mon application, j'ai un EditText
dont le type d'entrée par défaut est défini android:inputType="textPassword"
par deault. Il a un CheckBox
à sa droite, qui, lorsqu'il est coché, change le type d'entrée de ce EditText en NORMAL PLAIN TEXT. Le code pour cela est
password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
Mon problème est que lorsque cette case à cocher n'est pas cochée, elle doit à nouveau définir le type d'entrée sur PASSWORD. Je l'ai fait en utilisant-
password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
Mais, le texte à l'intérieur de cet edittext est toujours visible. Et par surprise, lorsque je change l'orienatation, il définit automatiquement le type d'entrée sur PASSWORD et le texte à l'intérieur est à puces (affiché comme un mot de passe).
Un moyen d'y parvenir?
android
passwords
android-edittext
Rajkiran
la source
la source
mailEdt.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
. Travaille pour moi.Réponses:
Juste pour les gens qui ont le même problème. Ajoutez simplement un attribut supplémentaire à cet EditText par programme et vous avez terminé.
Pour mot de passe numérique (pin).
Assurez-vous également que le curseur se trouve à la fin du texte dans EditText. Parce que, lorsque vous changez le type d'entrée, le curseur sera automatiquement placé au point de départ. Je suggère donc d'utiliser le code suivant:
Lorsque vous utilisez la liaison de données, vous pouvez utiliser le code suivant
Si vous utilisez Kotlin,
la source
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
editText.getSelectionStart()
eteditText.getSelectionEnd()
avecsetSelection(start, end)
pour éviter ce problème.utilisez ce code pour changer le mot de passe en texte et vice versa
pour un exemple de code complet, consultez http://www.codeproject.com/Tips/518641/Show-hide-password-in-a-edit-text-view-password-ty
la source
La méthode ci-dessus n'a pas vraiment fonctionné pour moi. La réponse ci-dessous fonctionne pour 2.2 sdk.
Définir inputType pour un EditText?
la source
Un autre exemple simple utilisant ImageView pour basculer la visibilité avec moins de code, en raison de l' affectation unique InputType, nous n'avons besoin que d'un opérateur d'égalité:
Remplacement:
Avec :
Donnera le même résultat mais un mot plus court.
la source
la source
Cela a fonctionné pour moi:
la source
Ok Donc, après des heures d'essais, il l'a finalement mis en œuvre. Ci-dessous le code.
Explications: - J'ai un bouton avec le texte par défaut comme indiqué. Après l'événement onclick, vérifiez si le texte du bouton est affiché. S'il est affiché, changez le type d'entrée, ajustez la position du curseur et définissez le nouveau texte comme masqué.
Quand il est masqué ... faire l'inverse c'est-à-dire cacher le mot de passe, ajuster le curseur et définir le texte comme show. Et c'est tout. Cela fonctionne comme un charme.
la source
Pour les utilisateurs de kotlin:
la source
Utilisez ce code pour changer le mot de passe en texte et vice versa. Ce code a parfaitement fonctionné pour moi. Essaye ça..
la source
Il s'agit du gestionnaire onClick complet pour l'image / le bouton pour afficher / masquer le mot de passe.
la source
edtPassword.getSelectionStart()
.La fonctionnalité de basculement de la visibilité du mot de passe a été ajoutée pour prendre en charge la version 24.2.0 de la bibliothèque, ce qui vous permet de basculer le mot de passe directement depuis le
EditText
sans avoir besoin d'un fichierCheckBox
.Vous pouvez faire en sorte que cela fonctionne en mettant d'abord à jour la version de votre bibliothèque de support vers 24.2.0, puis en définissant un
inputType
mot de passe sur leTextInputEditText
. Voici comment procéder:Vous pouvez obtenir plus d'informations sur la nouvelle fonctionnalité dans la documentation du développeur pour TextInputLayout .
la source
Depuis la bibliothèque de support v24.2.0. vous pouvez y parvenir très facilement
Ce que vous devez faire est juste:
Ajoutez la bibliothèque de conception à vos dépendances
Utiliser
TextInputEditText
en conjonction avecTextInputLayout
passwordToggleEnabled
attribut fera apparaître la bascule du mot de passeDans 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 .
la source
Ma recherche d'une solution similaire pour Visual Studio / Xamarin m'a conduit à ce fil. Voici ce qui a fonctionné pour moi avec Xamarin. Notez que cette implémentation conserve l'
TYPE_TEXT_FLAG_NO_SUGGESTIONS
indicateur lors du basculement entre les modes.EditText et = FindViewById<EditText>(Resource.Id.ET);
Pour afficher les caractères:
et.InputType = Android.Text.InputTypes.TextVariationVisiblePassword | Android.Text.InputTypes.TextFlagNoSuggestions;
Pour masquer les caractères:
et.InputType = Android.Text.InputTypes.TextVariationPassword | Android.Text.InputTypes.ClassText;
Pour définir la position de fin:
int position = et.Text.Length;
et.SetSelection(position, position);
la source
if (edittext.getInputType() == (InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD )){ edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD ); }else{ edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD ); }
pour Visual Studio / Xamarin ..?une situation dynamique
holder.edit_pin.setInputType(InputType.TYPE_CLASS_NUMBER);
ne fonctionnera pas, il vaut donc mieux utiliser les deux comme çaRemarque: cela convient lorsque vous utilisez des contrôles dynamiques comme l'utilisation de arrayaapter
la source
Après avoir entré
setInputType
un champ de mot de passe, vous aurez un problème avec FONTVoici ma solution pour afficher / masquer le mot de passe sans problème de police
Remarque: j'utilise à la
InputType.TYPE_TEXT_VARIATION_PASSWORD
placeInputType.TYPE_CLASS_TEXT
ouHideReturnsTransformationMethod
parce que je veux que le clavier affiche à la fois du texte et des chiffresDEMO
la source
Je supprimerais
android:inputType="textPassword"
de votre mise en page. C'est pourquoi il revient au mot de passe lorsque l'orientation change. Parce qu'à chaque fois que l'orientation change, la vue est recréée.Quant au premier problème, essayez ceci:
essentiellement vider le texte avant de modifier le type d'entrée, puis de le rajouter.
la source
password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
tout de suite après l'initialisation, mais hélas!Code complet lorsque vous souhaitez appliquer la visibilité du mot de passe dans le texte de modification du mot de passe.
Créer une poignée [Tout dessinable ou case à cocher]
en cliquant ou sur Coché / Décoché, écrivez ceci:
N'oubliez pas d'écrire cette ligne:
Il réinitialise le curseur à la fin de la ligne.
la source
Je change le type d'entrée sur ma case à cocher, donc
OnCheckedChangeListener
je fais:Et cela a finalement fonctionné.
Cela ressemble à un problème booléen avec
TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
. Inversez le drapeau et cela devrait résoudre le problème.Dans ton cas:
la source
Utilisez la méthode de transformation:
Cacher:
Visible:
C'est tout.
la source
Juste un commentaire supplémentaire sur la bonne réponse fournie par @Rajkiran, vous voudrez peut-être ajouter
à l'état d'entrée NORMAL afin que les utilisateurs ne soient pas ennuyés par l'auto-suggestion du clavier
la source
final int [] count = {0};
la source
Basé sur les réponses de neeraj t et Everton Fernandes Rosario, j'ai écrit à Kotlin, où se
password
trouve un identifiant d'un EditText dans votre mise en page.la source