Eu basicamente quero mudar para o modo de teclado numérico assim que um certo EditText tiver o foco.
Eu basicamente quero mudar para o modo de teclado numérico assim que um certo EditText tiver o foco.
Respostas:
Achei essa implementação útil, mostra um teclado melhor e limita os caracteres de entrada.
<EditText
android:inputType="phone"
android:digits="1234567890"
...
/>
Além disso, você pode usar android:maxLength
para limitar a quantidade máxima de números.
Para fazer isso programaticamente:
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"/>
mostrará o teclado numérico grande como discador.
Você pode fazer isso de duas maneiras
Conjunto de tempo de execução
EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
Usando XML
<EditText
...
android:inputType="number" />
Se você estiver usando seu EditText na caixa de diálogo ou criando dinamicamente e não puder defini-lo a partir do xml, este exemplo o ajudará a definir esse tipo de teclado enquanto estiver usando o Edit Edit dinâmico, etc.
myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);
onde myEditTxt é o objeto dinâmico EDIT TEXT (nome)
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);
Mais tipos e detalhes de entrada encontrados aqui no site do google
O código abaixo permitirá apenas os números "0123456789", mesmo se você digitar acidentalmente diferente de "0123456789", o texto de edição não será aceito.
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);