Ich versuche im Wesentlichen, den Ziffernwert eines EditText programmgesteuert festzulegen. Bisher habe ich:
weightInput.setInputType(InputType.TYPE_CLASS_PHONE);
weightInput.setKeyListener(DigitsKeyListener.getInstance());
Was in Ordnung ist, aber ich möchte auch eine Dezimalstelle (.) Einfügen können. Irgendwelche Ideen?
android
android-edittext
ryandlf
quelle
quelle
DialerKeyListener
anstelle vonDigitsKeyListener
Antworten:
Versuche dies:
Aus dem Code:
Der Benutzer kann jedoch mehrere "." Siehe JoeyRAs Antwort für reelle Zahlen.
quelle
TextView
Quellen// If no input type was specified, we will default to generic text, since we can't tell the IME about the set of digits that was selected.
.
nach 9?Versuche dies:
Gibt einen DigitsKeyListener zurück, der die Ziffern 0 bis 9 sowie das Minuszeichen (nur am Anfang) und / oder den Dezimalpunkt (nur eines pro Feld) akzeptiert, falls angegeben.
Dies löst das Problem über die vielen '.' in EditText
quelle
setInputType
wieder tun, wird es dann nicht den zweiten zum ersten überschreiben? Ich denke, Sie sollten verwenden,weightInput.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
aber ich bin nicht 100% sicherVerwenden Sie
InputType.TYPE_NUMBER_FLAG_DECIMAL
.Siehe auch: Eingabetypen .
quelle
Zur Eingabe der IP-Adresse (mehrere Punkte und Zahlen)
Versuchen
quelle