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.