¿Cómo muestro el teclado numérico en un EditText en Android?

146

Básicamente, solo quiero cambiar al modo de teclado numérico tan pronto como un cierto EditText tenga el foco.

Chiwai Chan
fuente
44
La pregunta no establece específicamente un deseo de cambiar el tipo de entrada permitido. Simplemente pregunta cómo cambiar el modo del teclado, que es lo que me gustaría hacer sin cambiar el tipo de entrada. Todas las respuestas explican cómo cambiar el tipo de entrada.
AlanKley
Comprueba mi respuesta a esta pregunta stackoverflow.com/questions/39593324/…
Ayuda de Android

Respuestas:

261

Puede configurar un inputTypepara su EditText:

<EditText android:inputType="number" ... />
Josef Pfleger
fuente
66
También tenga en cuenta que debe apuntar a Android 1.5 para usar esto (no está disponible en 1.1)
Wilka
44
El problema es que no puedes volver a cambiar. Usar "número | texto" tampoco funciona. Parece que si desea mostrar un teclado numérico, no puede permitir que vuelva a texto.
Estoy de acuerdo con Brian ... si el primer campo es alfa y el siguiente campo es numérico, ¡no puedo ir al siguiente campo usando el botón 'Siguiente'!
Ahmed
Si puede regresar o no depende del teléfono, creo. El mío lo permite.
Martin Clemens Bloch
Quiero cambiar el número de tipo de teclado y quiero pegar texto en edittext. ¿Cómo hacer?
İbrahim YANIK
115

Para hacerlo en un archivo Java:

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

Esta implementación me pareció útil, muestra un mejor teclado y limita los caracteres de entrada.

<EditText
    android:inputType="phone"
    android:digits="1234567890"
    ...
/>

Además, puede usar android:maxLengthpara limitar la cantidad máxima de números.

Para hacer esto programáticamente:

editText.setInputType(InputType.TYPE_CLASS_PHONE);

KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);
Matthijs
fuente
¿Hay alguna manera de hacer esto mediante programación? Muero por obtener un teclado de número limitado para mi EditText pero está configurado de tal manera que tiene que generarse en la actividad.
Martin Erlic
18
<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
    android:inputType="number|phone"/> 

mostrará el teclado numérico grande como marcador.

Nguyen Minh Binh
fuente
11

Puedes hacerlo de 2 maneras

  1. Conjunto de tiempo de ejecución

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

    <EditText
        ...
        android:inputType="number" />
Nirav Ranpara
fuente
5

Si necesita un número fraccionario, esta es la respuesta para usted:

android:inputType="numberDecimal"
macio.Jun
fuente
4

Si está utilizando su EditText en el cuadro de diálogo o está creando dinámicamente y no puede configurarlo desde xml, este ejemplo lo ayudará a configurar ese tipo de teclado mientras usa Editar texto dinámico, etc.

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

donde myEditTxt es el objeto dinámico EDITAR TEXTO (nombre)

Pir Fahim Shah
fuente
2
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);
Aliya
fuente
Si está formateando manualmente un texto (como moneda) y desea controlar solo el teclado, esa es la opción. No filtrará tus caracteres. ¡Gracias!
lauksas
Esto funcionó como un encanto para mí. Quiero mostrar un valor de marcador de posición textual cuando aún no se ha editado un campo, pero aún así restringir la entrada a números y mostrar un teclado restringido.
Alex Suzuki el
2

Más tipos de entrada y detalles encontrados aquí en el sitio web de Google

sai Gorantla
fuente
2

El siguiente código solo permitirá números "0123456789”, incluso si accidentalmente escribe otro que no sea "0123456789”, no se aceptará la edición de texto.

    EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
    number1.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_CLASS_PHONE);
    number1.setKeyListener(DigitsKeyListener.getInstance("0123456789”));
Akhila Madari
fuente
Debe agregar comentarios que expliquen su código y por qué es la solución
cyroxis el
1

Use el siguiente código en el archivo java

editText.setRawInputType (Configuration.KEYBOARD_QWERTY);

Darshuu
fuente
0

Defina esto en su código xml

android:inputType="number"
fulgen
fuente
0
EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
number1.setInputType(InputType.TYPE_CLASS_NUMBER);
Shiv Buyya
fuente
Si tiene EditText número1 creado en el código xml de diseño, entonces si desea configurar el teclado numérico en número1 EditText, puede hacerlo de esta manera utilizando el código Java.
Shiv Buyya