In pratica voglio solo passare alla modalità tastierino numerico non appena un certo EditText ha lo stato attivo.
In pratica voglio solo passare alla modalità tastierino numerico non appena un certo EditText ha lo stato attivo.
Risposte:
Ho trovato utile questa implementazione, mostra una tastiera migliore e limita i caratteri di input.
<EditText
android:inputType="phone"
android:digits="1234567890"
...
/>
Inoltre, è possibile utilizzare android:maxLength
per limitare il numero massimo di numeri.
Per fare ciò a livello di codice:
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"/>
mostrerà il tastierino numerico grande come dialer.
Puoi farlo in 2 modi
Set di runtime
EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
Utilizzando XML
<EditText
...
android:inputType="number" />
Se stai usando il tuo EditText nella finestra di dialogo o la creazione in modo dinamico e non puoi impostarlo da XML, questo esempio ti aiuterà a impostare quel tipo di tastiera mentre stai usando Modifica testo dinamico ecc.
myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);
dove myEditTxt è l'oggetto EDIT TEXT dinamico (nome)
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);
Altri tipi e dettagli di input sono disponibili qui sul sito Web di Google
Il codice seguente consentirà solo i numeri "0123456789", anche se si digita accidentalmente diverso da "0123456789", la modifica del testo non accetterà.
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);