¿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.


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" ... />

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

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

¿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.


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" />

5

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

android:inputType="numberDecimal"

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)


2
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);

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

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

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


0

Defina esto en su código xml

android:inputType="number"

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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.