Po prostu chcę przejść do trybu klawiatury numerycznej, gdy tylko określony EditText stanie się aktywny.
Po prostu chcę przejść do trybu klawiatury numerycznej, gdy tylko określony EditText stanie się aktywny.
Odpowiedzi:
Uważam, że ta implementacja jest przydatna, pokazuje lepszą klawiaturę i ogranicza znaki wejściowe.
<EditText
android:inputType="phone"
android:digits="1234567890"
...
/>
Dodatkowo możesz użyć, android:maxLength
aby ograniczyć maksymalną liczbę liczb.
Aby zrobić to programowo:
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"/>
pokaże dużą klawiaturę numeryczną jako dialer.
Możesz to zrobić na dwa sposoby
Zestaw uruchomieniowy
EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
Korzystanie z XML
<EditText
...
android:inputType="number" />
Jeśli używasz EditText w oknie dialogowym lub tworzysz dynamicznie i nie możesz ustawić go z xml, ten przykład pomoże ci ustawić ten typ klawiatury podczas korzystania z dynamicznej edycji tekstu itp.
myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);
gdzie myEditTxt to dynamiczny obiekt EDIT TEXT (nazwa)
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);
Więcej typów danych wejściowych i szczegółów można znaleźć tutaj w witrynie Google
Poniższy kod dopuszcza tylko cyfry „0123456789”, nawet jeśli przypadkowo wpiszesz inny niż „0123456789”, tekst edycji nie zostanie zaakceptowany.
EditText number1 = (EditText) layout.findViewById(R.id.edittext);
number1.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_CLASS_PHONE);
number1.setKeyListener(DigitsKeyListener.getInstance("0123456789”));
EditText number1 = (EditText) layout.findViewById(R.id.edittext);
number1.setInputType(InputType.TYPE_CLASS_NUMBER);