Como mostro o teclado numérico em um EditText no Android?


146

Eu basicamente quero mudar para o modo de teclado numérico assim que um certo EditText tiver o foco.


4
A pergunta não indica especificamente o desejo de alterar o tipo de entrada permitido. Ele simplesmente pergunta como alterar o modo do teclado, que é o que eu gostaria de fazer sem alterar o tipo de entrada. Todas as respostas explicam como alterar o tipo de entrada.
precisa saber é o seguinte

Verifique minha resposta nesta pergunta stackoverflow.com/questions/39593324/…
Ajuda do Android

Respostas:


261

Você pode configurar um inputTypepara o seu EditText:

<EditText android:inputType="number" ... />

6
Além disso, note que você precisa para atingir Android 1.5 para usar este (ele não está disponível em 1.1)
Wilka

4
O problema é que você não pode voltar. Usar "número | texto" também não funciona. Parece que, se você deseja mostrar um teclado numérico, não pode permitir que ele volte ao texto.

Eu concordo com Brian .. se o primeiro campo for alfa e o próximo campo for numérico, não posso ir para o próximo campo usando o botão 'Próximo'!
Ahmed

Se você pode voltar ou não, depende do telefone, eu acho. O meu permite.
Martin Clemens Bloch

Quero alterar o número do tipo de teclado e quero colar o texto no edittext. Como fazer?
İbrahim YANIK 30/11/19

115

Para fazer isso em um arquivo Java:

EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);

51

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);

Existe alguma maneira de fazer isso programaticamente? Estou ansioso para obter um teclado de número limitado para o meu EditText, mas ele é configurado de tal maneira que precisa ser gerado na atividade.
Martin Erlic

18
<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
    android:inputType="number|phone"/> 

mostrará o teclado numérico grande como discador.


11

Você pode fazer isso de duas maneiras

  1. Conjunto de tempo de execução

    EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_CLASS_NUMBER);
  2. Usando XML

    <EditText
        ...
        android:inputType="number" />

5

Se você precisar de um número fracionário, esta é a resposta para você:

android:inputType="numberDecimal"

4

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)


2
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);

Se você estiver formatando manualmente um texto (como na moeda) e quiser controlar apenas o teclado, essa é a escolha. Não filtrará seus caracteres. Obrigado!
lauksas

Isso funcionou como um encanto para mim. Desejo exibir um valor de espaço reservado para texto quando um campo ainda não foi editado, mas ainda assim restringir a entrada a números e exibir um teclado restrito.
Alex Suzuki


2

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”));

Você deve adicionar comentário explicando o seu código e por isso é a solução
cyroxis

1

Use o código abaixo no arquivo java

editText.setRawInputType (Configuration.KEYBOARD_QWERTY);


0

Defina isso no seu código xml

android:inputType="number"

0
EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
number1.setInputType(InputType.TYPE_CLASS_NUMBER);

Se você tiver o EditText número1 criado no código xml de layout, se desejar definir o Teclado numérico como número1 EditText, poderá fazer isso usando o Código Java.
Shiv Buyya
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.