Ich möchte einfach in den Nummernblockmodus wechseln, sobald ein bestimmter EditText den Fokus hat.
Sie können eine inputType
Um dies in einer Java-Datei zu tun:
EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
Ich fand diese Implementierung nützlich, zeigt eine bessere Tastatur und begrenzt die Eingabezeichen.
<EditText
Android:inputType="phone"
Android:digits="1234567890"
...
/>
Zusätzlich können Sie Android:maxLength
verwenden, um die maximale Anzahl von Zahlen zu begrenzen.
Um dies programmgesteuert durchzuführen:
editText.setInputType(InputType.TYPE_CLASS_PHONE);
KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);
<EditText
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
...
Android:inputType="number|phone"/>
zeigt den großen Ziffernblock als Dialer an.
Sie können es auf zwei Arten tun
Laufzeit eingestellt
EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
Verwendung von XML
<EditText
...
Android:inputType="number" />
Wenn Sie eine Bruchzahl benötigen, ist dies die Antwort für Sie:
Android:inputType="numberDecimal"
Wenn Sie EditText in Dialog verwenden oder dynamisch erstellen und nicht aus XML heraus gesetzt werden können, hilft Ihnen dieses Beispiel beim Festlegen dieses Tastaturtyps, während Sie dynamischen Text bearbeiten usw.
myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);
wobei myEditTxt das dynamische EDIT TEXT-Objekt ist (Name)
Weitere Eingabetypen und Details finden Sie hier auf der Google-Website
Verwenden Sie den folgenden Code in der Java-Datei
editText.setRawInputType (Configuration.KEYBOARD_QWERTY);
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);
Definieren Sie dies in Ihrem XML-Code
Android:inputType="number"
EditText number1 = (EditText) layout.findViewById(R.id.edittext);
number1.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_CLASS_PHONE);
number1.setKeyListener(DigitsKeyListener.getInstance("0123456789”));
Dieser Code nimmt nur Zahlen von "0123456789" an, auch wenn Sie versehentlich eine andere Zahl als "0123456789" eingeben. Der Bearbeitungstext wird nicht akzeptiert.
EditText number1 = (EditText) layout.findViewById(R.id.edittext);
number1.setInputType(InputType.TYPE_CLASS_NUMBER);