5 votes

Ajouter une chaîne non modifiable à l'EditText

Existe-t-il un moyen d'ajouter une chaîne à une valeur EditText, de sorte que la chaîne ajoutée ne soit pas modifiable ?

Par exemple, si j'ai un EditText pour les adresses e-mail, je veux traiter une adresse e-mail comme une entité unique plutôt que comme des caractères uniques. Par conséquent, si un utilisateur supprime le dernier caractère de l'adresse électronique, je veux que l'adresse électronique entière soit supprimée plutôt que le dernier caractère.

J'ai regardé Spannable mais je ne vois rien d'évident. C'est similaire à la façon dont Gmail et d'autres applications le font.

4voto

Zarah Points 3050

Reposant mon commentaire comme une réponse (et modifiant les mots pour rendre ma suggestion plus claire).

Avoir un [ onTextChanged ]( [http://developer.Android.com/reference/Android/widget/TextView.html#onTextChanged(java.lang.CharSequence](http://developer.android.com/reference/android/widget/TextView.html#onTextChanged(java.lang.CharSequence) , int, int, int)) attachée à votre EditText pour être informé de l'entrée de l'utilisateur. Vous pouvez alors vérifier la longueur du contenu de la balise EditText et s'il diminue de 1, alors vous pouvez supposer que l'utilisateur a supprimé un caractère.

Si l'utilisateur a saisi me@sample.com puis sur votre onTextChanged vous pouvez donner au texte la valeur d'une chaîne vide. Bien entendu, vous devrez d'abord vérifier que l'utilisateur a bien saisi une adresse électronique complète avant d'appliquer votre modification. Par exemple, vous pourriez vous assurer que l'utilisateur a saisi le champ @ déjà, ou il y a un espace après le dernier caractère non espace.

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