2010-12-03 3 views
0

Comment faire du code quand exactement 4 chiffres/lettres ont été entrés dans un edittext?Comment exécuter du code quand exactement 4 chiffres/lettres ont été entrés dans un edittext

+1

Vous allez devoir clarifier ce que vous voulez dire par "faire du code". Voulez-vous valider que quatre caractères ont été saisis? Essayez-vous de déclencher une action lorsque le quatrième caractère est entré? Voulez-vous faire une action s'il y a quatre caractères quand un bouton est enfoncé et une action différente pour autre chose que quatre? – Blumer

+0

Juste pour ajouter à cela, gardez à l'esprit que vos utilisateurs vont taper sur un écran tactile, ce qui est à mon avis une méthode de frappe HORRIBLE inexact. Il est donc possible qu'ils tapent le mauvais quatrième numéro et veulent le corriger. Si le code s'exécute automatiquement, cela peut entraîner de la frustration. – kcoppock

Répondre

4

Tout ce que vous devez faire est d'ajouter un TextWatcher à votre edittext.

myEditText.addTextChangedListener(new TextWatcher() { 
@Override 
public void onTextChanged(CharSequence s, int start, int before, int count) { 
    if(messageText.getText().length() == 4){ 
    //call a function here 
    } 
} 
@Override 
public void afterTextChanged(Editable s) {} 
@Override 
public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 
}); 
+2

Merci beaucoup! Cela a fonctionné parfaitement. Maintenant, lorsque l'utilisateur a entré le 4ème chiffre, une fonction est appelée pour vérifier si les chiffres sont corrects. Comme l'a dit kcoppock je l'ai fait de sorte que l'utilisateur peut encore éditer s'il est mal entré, donc personne ne sera ennuyé ici :) Merci. – user484146

+0

On dirait gagnant-gagnant. :) – kcoppock

Questions connexes