233 votes

Vérifie si l'EditText est vide.

J'ai 5 EditTexts dans Android pour que les utilisateurs puissent les saisir. Je voudrais savoir si je peux avoir une méthode pour vérifier les 5 EditTexts s'ils sont nuls. Existe-t-il un moyen de faire cela ?

397voto

cvaldemar Points 2825

J'ai fait quelque chose comme ça une fois ;

EditText usernameEditText = (EditText) findViewById(R.id.editUsername);
sUsername = usernameEditText.getText().toString();
if (sUsername.matches("")) {
    Toast.makeText(this, "You did not enter a username", Toast.LENGTH_SHORT).show();
    return;
}

0 votes

Bonjour, merci pour votre réponse ! Donc, si j'ai 5 editTexts, je dois le faire 5 fois ?

0 votes

Pas nécessairement, cela pourrait être une fonction

4 votes

Oui, désolé, j'ai oublié que vous en aviez cinq. Vous pourriez créer une fonction qui ferait la même chose et l'appeler cinq fois - ou vous pourriez boucler sur les cinq EditText.

195voto

SBJ Points 1556
private boolean isEmpty(EditText etText) {
    if (etText.getText().toString().trim().length() > 0) {
        return false;
    } else {
        return true;
    }
}

OU Selon le cas audrius

  private boolean isEmpty(EditText etText) {
        return etText.getText().toString().trim().length() == 0;
    }

Si le retour de la fonction false signifie que le texte de l'édition est not empty et retourner true signifie que le texte de l'édition est empty ...

30 votes

+1 Vérifier la longueur est mieux que de vérifier une chaîne vide IMHO. Il serait utile de couper la chaîne avant de vérifier la longueur afin que les caractères d'espacement ne soient pas comptés. A propos, une raison particulière de ne pas utiliser return etText.getText().toString().trim().length() == 0 au lieu de branches vrai/faux ?

1 votes

Eh bien, je suppose que la lisibilité et la maintenabilité du code...

0 votes

Si EditText.setInputType(InputType.TYPE_CLASS_NUMBER) ; nombre alors utiliser ceci.

158voto

andruboy Points 1696

si l'edittext est vide, utilisez la méthode setError.

EditText txtUserName = (EditText) findViewById(R.id.txtUsername);
String strUserName = usernameEditText.getText().toString();

 if(TextUtils.isEmpty(strUserName) {
    txtUserName.setError("Your message");
    return;
 }

enter image description here

0 votes

Vous devez ajouter un autre ) dans l'instruction if.

1 votes

@Androidenthusiasts merci de m'avoir signalé ma faute de frappe j'ai mis à jour ma réponse :)

0 votes

Je ne comprends pas le deuxième champ ""usernameEditText"" String strUserName = usernameEditText.getText().toString() ; " où est-il déclaré ?

38voto

Houcine Points 9248

essayez ceci :

EditText txtUserName = (EditText) findViewById(R.id.txtUsername);
String strUserName = usernameEditText.getText().toString();
if (strUserName.trim().equals("")) {
    Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show();
    return;
}

ou utiliser le TextUtils classe comme ceci :

if(TextUtils.isEmpty(strUserName) {
    Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show();
    return;
}

3 votes

...c'est la meilleure façon de faire. D'autres exemples permettent des entrées qui ne sont pas prises en compte.

30voto

Qw4z1 Points 1289

J'arrive un peu tard dans la soirée, mais je me dois d'ajouter la contribution d'Android. TextUtils.isEmpty(CharSequence str)

Renvoie un message vrai si la chaîne est nulle ou de longueur nulle.

Ainsi, si vous placez vos cinq EditTexts dans une liste, le code complet serait le suivant :

for(EditText edit : editTextList){
    if(TextUtils.isEmpty(edit.getText()){
        // EditText was empty
        // Do something fancy
    }
}

0 votes

IsEmpty() ne vérifie pas les espaces vides, essayez d'entrer un espace.

3 votes

@Hunt C'est vrai, mais alors il ne serait plus vide ou nul. Peut-être que TextUtils.isEmpty(sUserName.trim()) serait approprié, pour supprimer tous les blancs, juste au cas où l'utilisateur aurait saisi un ou plusieurs espaces vides ?

0 votes

isEmpty() prend un CharSequence qui Editable s'étend, il n'y a donc pas besoin d'appeler .toString() sur elle.

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