Ich habe einen edittext
, in den nur Integer-Werte eingefügt werden sollen. Kann mir jemand sagen, welche Immobilie ich benutzen muss?
Ich denke Android:inputType="number"
bei den XML-Attributen.
Zum Beispiel:
<EditText
Android:id="@+id/myNumber"
Android:digits="0123456789."
Android:inputType="numberDecimal"
/>
Im Code könnten Sie das tun
ed_ins.setInputType(InputType.TYPE_CLASS_NUMBER);
Verwenden Sie Android:inputType="numberPassword"
zusammen mit editText.setTransformationMethod(null);
nur für die Eingabe von Ziffern, um das automatische Ausblenden der Nummer zu entfernen.
ODER
Android:inputType="phone"
Ich empfinde diese beiden Möglichkeiten für die Eingabe von Ziffern als für Android:inputType="number"
. Die Einschränkung der Erwähnung von "number" als inputType besteht darin, dass die Tastatur auf Zeichen umschalten kann und auch andere Sonderzeichen eingegeben werden können. "numberPassword" inputType hat diese Probleme nicht, da die Tastatur nur Ziffern enthält. Selbst "phone" inputType funktioniert, da Sie über die Tastatur nicht auf Zeichen umschalten können. Sie können jedoch immer noch Sonderzeichen wie +, /, N usw. eingeben.
Android: inputType = "numberPassword" mit editText.setTransformationMethod (null);
inputType = "phone"
inputType = "number"
Android:inputType="numberDecimal"
<EditText
Android:id="@+id/age"
Android:numeric="integer"
/>
Wenn nur Personen von 0 bis 9 mit imeOptions
aktivieren möchten, verwenden Sie die untere Zeile in Ihrer EditText
Android: inputType = "number | none"
Dies erlaubt nur die Anzahl und wenn Sie auf die Schaltfläche Fertig/Weiter klicken, wird der Fokus zum nächsten Feld verschoben.
durch die Verwendung des Folgenden kann Ihr Problem besser gelöst werden.
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();
}
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 verwenden
editText.setInputType (InputType.TYPE_CLASS_NUMBER);
Ich muss mit TextWatcher auf einer Tastatur die Eingabetaste drücken. Aber ich habe herausgefunden, dass alle numerischen Tastaturen Android: inputType = "number" oder "numberDecimal" oder "numberPassword" e.t.c. Erlaube mir nicht, die Eingabetaste abzufangen, wenn der Benutzer sie drückt.
Ich habe Android:digits="0123456789\n"
ausprobiert, und alle numerischen Tastaturen funktionierten mit Enter und TextWatcher.
Mein Weg ist also:
Android:digits="0123456789\n"
Android:inputType="numberPassword"
plus editText.setTransformationMethod(null)
Danke an barmaley und abhiank.