J'ai une edittext
dans laquelle je veux que seules des valeurs entières soient insérées. Quelqu'un peut-il me dire quelle propriété je dois utiliser?
Je suppose que Android:inputType="number"
aux attributs XML.
Par exemple:
<EditText
Android:id="@+id/myNumber"
Android:digits="0123456789."
Android:inputType="numberDecimal"
/>
En code, vous pourriez faire
ed_ins.setInputType(InputType.TYPE_CLASS_NUMBER);
Pour les chiffres uniquement, utilisez Android:inputType="numberPassword"
avec editText.setTransformationMethod(null);
pour supprimer le masquage automatique du numéro.
OU
Android:inputType="phone"
Pour la saisie de chiffres uniquement, je pense que ces deux manières sont meilleures que Android:inputType="number"
. La limitation de "nombre" en tant que inputType est que le clavier permet de basculer vers des caractères et permet également de saisir d'autres caractères spéciaux. "numberPassword" inputType ne présente pas ces problèmes, car le clavier n'affiche que les chiffres. Même "phone" inputType fonctionne car le clavier ne vous permet pas de basculer vers des caractères. Mais vous pouvez toujours entrer quelques caractères spéciaux comme +, /, N, etc.
Android: inputType = "numberPassword" avec editText.setTransformationMethod (null);
inputType = "phone"
inputType = "nombre"
Android:inputType="numberDecimal"
<EditText
Android:id="@+id/age"
Android:numeric="integer"
/>
Si quelqu'un souhaite utiliser uniquement un nombre compris entre 0 et 9 avec imeOptions
enable, utilisez la ligne ci-dessous dans votre EditText
Android: inputType = "numéro | aucun"
Cela n'autorisera que le nombre et si vous cliquez sur le bouton Terminé/Suivant du clavier, votre focus passera au champ suivant.
en utilisant ce qui suit, vous pourrez mieux résoudre votre problème.
en xml:
<EditText
Android:id="@+id/age"
Android:inputType="numberDecimal|numberSigned" />
ou // en activité à l'intérieur de etfield.addtextchangelistener
private String blockCharacterSet="+(/)N,*;#";//declare globally
try {
for (int i = 0; i < s.length(); i++) {
if (blockCharacterSet.contains(s.charAt(i) + "")) {
String corrected_settempvalue = arrivalsettemp.substring(0, arrivalsettemp.length() - 1);
et_ArrivalSetTemp.setText(corrected_settempvalue);
if (corrected_settempvalue.length() != 0)
et_ArrivalSetTemp.setSelection(corrected_settempvalue.length());
}
}
} catch (Exception d) {
d.printStackTrace();
}
Vous pouvez l'utiliser en XML
<EditText
Android:id="@+id/myNumber"
Android:digits="123"
Android:inputType="number"
/>
ou,
Android:inputType="numberPassword" along with editText.setTransformationMethod(null); to remove auto-hiding of the number.
ou,
Android:inputType="phone"
Par programme, vous pouvez utiliser
editText.setInputType (InputType.TYPE_CLASS_NUMBER);
Je dois attraper en appuyant sur Entrée sur un clavier avec TextWatcher . Mais j'ai découvert que tous les claviers numériques Android: inputType = "number" ou "numberDecimal" ou "numberPassword" e.t.c. ne me permettez pas de saisir Enter lorsque l'utilisateur appuie dessus.
J'ai essayé Android:digits="0123456789\n"
et tous les claviers numériques ont commencé à fonctionner avec Entrée et TextWatcher.
Donc, mon chemin est:
Android:digits="0123456789\n"
Android:inputType="numberPassword"
plus editText.setTransformationMethod(null)
Merci à barmaley et abhiank.