Antworten:
Ich denke android:inputType="number"
an die XML-Attribute.
android:inputType="phone"
. Aber es scheint ein bisschen "beschäftigt" zu sein.
Beispielsweise:
<EditText
android:id="@+id/myNumber"
android:digits="0123456789."
android:inputType="numberDecimal"
/>
0123456789.
und nicht0123456780.
Verwenden Sie nur für die Eingabe von Ziffern android:inputType="numberPassword"
zusammen miteditText.setTransformationMethod(null);
, um das automatische Ausblenden der Nummer zu entfernen.
ODER
android:inputType="phone"
Ich bin der Meinung, dass diese paar Möglichkeiten besser sind, wenn nur Ziffern eingegeben werden android:inputType="number"
. Die Einschränkung der Angabe von "number" als inputType besteht darin, dass über die Tastatur auf Zeichen umgeschaltet und andere Sonderzeichen eingegeben werden können. "numberPassword" inputType hat diese Probleme nicht, da auf der Tastatur nur Ziffern angezeigt werden. Sogar "phone" inputType funktioniert, da Sie mit der Tastatur nicht zu Zeichen wechseln können. Sie können jedoch weiterhin einige Sonderzeichen wie +, /, N usw. eingeben.
android: inputType = "numberPassword" mit editText.setTransformationMethod (null);
inputType = "Telefon"
inputType = "number"
android:inputType="numberPassword"
zusammen miteditText.setTransformationMethod(null);
android:inputType="numberDecimal"
<EditText
android:id="@+id/age"
android:numeric="integer"
/>
Wenn Sie das Folgende verwenden, können Sie Ihr Problem besser lösen.
in xml:
<EditText
android:id="@+id/age"
android:inputType="numberDecimal|numberSigned" />
oder // in Aktivität innerhalb von 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();
}
Wenn jemand nur eine Zahl von 0 bis 9 mit imeOptions
Aktivierung verwenden möchte, verwenden Sie die folgende Zeile in IhremEditText
android: inputType = "number | none"
Dies erlaubt nur die Nummerierung und wenn Sie auf die Schaltfläche Fertig / Weiter der Tastatur klicken, bewegt sich Ihr Fokus zum nächsten Feld.
Sie können es in XML verwenden
<EditText
android:id="@+id/myNumber"
android:digits="123"
android:inputType="number"
/>
oder,
android:inputType="numberPassword" along with editText.setTransformationMethod(null); to remove auto-hiding of the number.
oder,
android:inputType="phone"
Programmgesteuert können Sie
editText.setInputType (InputType.TYPE_CLASS_NUMBER) verwenden.
Ich muss mit TextWatcher die Eingabetaste auf einer Tastatur drücken . Aber ich fand heraus, dass alle numerischen Tastaturen android: inputType = "number" oder "numberDecimal" oder "numberPassword" usw. mir nicht erlauben, die Eingabetaste zu fangen, wenn der Benutzer darauf drückt.
Ich habe es versucht android:digits="0123456789\n"
und alle numerischen Tastaturen begannen mit Enter und TextWatcher zu arbeiten.
Mein Weg ist also:
android:digits="0123456789\n"
android:inputType="numberPassword"
Plus editText.setTransformationMethod(null)
Danke an Barmaley und Abhiank.
Ich weiß nicht, was die richtige Antwort in '13 war, aber heute ist es:
myEditText.setKeyListener(DigitsKeyListener.getInstance(null, false, true)); // positive decimal numbers
Sie erhalten alles, einschließlich der Bildschirmtastatur ist ein Ziffernblock.
Beinahe alles. Espresso lässt in seiner unendlichen Weisheit typeText("...")
unerklärlicherweise den Filter umgehen und in den Müll gelangen ...
das einfachste für mich
android:numeric="integer"
obwohl dies auch mehr anpassen
android:digits="0123456789"