2

Si je veux appliquer une longueur maximale d'entrée dans un champ EditText, je peux utiliser l'attribut maxLength. Mais si je veux appliquer une longueur minimale (dans mon cas, simplement non vide), je ne trouve aucun attribut minLength correspondant. J'ai aussi regardé les différents attributs 'inputType' (téléphone, mot de passe, etc) mais je ne vois rien comme 'required' ou 'non-blank'.Android: nécessité de valider un edittext pour une entrée non vide

Je ne peux pas croire que cela nécessiterait un filtre d'entrée personnalisé; il est plus probable que la réponse soit si évidente qu'elle ne soit pas écrite sous la forme que je pose la question.

Répondre

1

Vous pouvez simplement vérifier que yourField.text() n'est pas équivalent à null ou "" au moment de la soumission. Si c'est le cas, demandez à l'utilisateur d'entrer quelque chose.

+1

Peut-être aussi couper la chaîne si vous ne voulez pas que les espaces comptent comme un imput. –

+0

J'apprécie les deux suggestions. Et c'est essentiellement ce que je fais - la validation après que tous les champs de l'écran sont remplis et que l'utilisateur appuie sur le bouton 'aller'. Mais ce que je cherchais/espérais était un moyen de donner un retour instantané lorsque le focus quitte un champ avant de passer au suivant. –

+0

Ensuite, vous voulez juste faire la vérification dans le 'onFocusChanged()' de l'EditText – jqpubliq

1

Attention cependant avec quelque chose. Si vous avez un bouton d'envoi, par exemple, et que votre utilisateur appuie sur Envoyer sans modifier le focus de votre TextEdit, votre méthode ne sera pas appelée.

Prenez une activité avec 2 EditTexts et 1 bouton nommé "Go":

1) L'utilisateur écrit quelque chose dans EditText1

2) utilisateur clique sur EditText2

3) Au lieu d'ecriture quelque chose juste les clics vont.

Votre méthode onFocusChanged() ne sera pas appelée car le focus n'est pas "perdu".

Si vous avez une validation dans votre méthode de Button_Click Go, il déclenche, bien sûr, mais vous ne serez pas atteindre votre objectif « Je cherchais/espérant était un moyen de donner une rétroaction instantanée »

Vous peut essayer d'utiliser TextWatcher.