Comment faire pour déterminer si une entrée dans l'EditText est un entier?
Salut, je suis un débutant dans la Programmation Android.
Je suis en train de construire une activité qui comprend un edittext
champ et un button
. Lorsque l'utilisateur de taper un entier, le bouton mènera à la prochaine activité. Cependant je ne suis pas si il existe un moyen de vérifier le type de l'entrée de l'utilisateur.
Quelqu'un peut m'aider? Merci beaucoup!
J'ai trouver une ligne de code sur internet :
myEdit.getText().getClass().equals(Integer.TYPE) /// Cependant, après avoir joué avec mon code, j'ai découvert edittext renvoyer en fait un type de données Modifiable
vous pouvez utiliser
Et je ne sais pas comment vérifier le type d'entrée. Est 1, représenté comme une chaîne de caractères? CharSequence? Int?
Salut Henry, après la recherche de la documentation de TextWatcher, je crois qu'il ne peut pas résoudre mon problème, car il est utilisé pour surveiller le changement de Texte modifiables. Mais Merci tout de même!
myEdit.getText().getClass().equals(Integer.TYPE) /// Cependant, après avoir joué avec mon code, j'ai découvert edittext renvoyer en fait un type de données Modifiable
vous pouvez utiliser
TextWather
pour obtenir ce que l'utilisateur d'Entrer dans EditText, avez-vous essayer?Et je ne sais pas comment vérifier le type d'entrée. Est 1, représenté comme une chaîne de caractères? CharSequence? Int?
Salut Henry, après la recherche de la documentation de TextWatcher, je crois qu'il ne peut pas résoudre mon problème, car il est utilisé pour surveiller le changement de Texte modifiables. Mais Merci tout de même!
OriginalL'auteur Yansuck | 2012-04-12
Vous devez vous connecter pour publier un commentaire.
si cette réponse est correcte, alors pls accepter...
Le plaisir de l'aider. ^^
Au lieu d'attraper général de l'interception d'Exception NumberFormatException sera plus juste
Je vais regarder à cela. Merci beaucoup!
OriginalL'auteur Mark Pazon
Depuis l'API de niveau 1, Android fournit une méthode d'aide pour le faire (pas besoin d'utiliser des regex et la capture de l'exception) : TextUtils.isDigitsOnly(CharSequence str)
Noter que cette méthode retourne vrai avec une Chaîne vide : Question 24965
OriginalL'auteur jmaffre
Si vous whant EditText accepter uniquement des chiffres, vous ne pouvez pas spécifier
android:inputType="number"
dans le fichier layout.OriginalL'auteur muffinmad
Vous pouvez utiliser
TextWatcher
pourEditText
pour obtenir la valeur de chaque changement deEditText
.Vous avez besoin d'ajouter de l'interface de TextWatcher dans votre Activité.sur la méthode de TextWatcher
OriginalL'auteur Herry
D'essayer cette solution.
Vous avez besoin d'ajouter les propriétés
android:nextFocusDown="@+id/nextedittext_id"
etandroid:singleLine="true"
dans votre edittexts.Par exemple:
Et ajoutez le code suivant dans votre activité:
isNumeric méthode est la même que ci-dessus:
OriginalL'auteur SAAM
J'ai trouvé une bien meilleure solution,qui vérifie si la chaîne est n'importe quel type de nombre, y compris
integer
,float
,long
oudouble
.OriginalL'auteur Ikky
Code suivant peut être utilisé pour déterminer les chiffres,
Cependant, puisque cette méthode retourne true avec la Chaîne vide en tant que bien de sorte que vous pouvez mettre une validation pour la chaîne vide comme suit,
OriginalL'auteur Yuvraj Pandey