¿Cómo configuro el teclado numérico en EditText sin forzar la entrada numérica?

Esto se ha pedido en otro lugar en línea en vano. ¿Hay alguna forma en Android de mostrar el teclado numérico al centrarse en un texto de EditText , pero aún así permitir que se ingrese cualquier texto?

Me gustaría que el usuario ingrese las cantidades (por ejemplo, “1 kg”, “2 L”), por lo que simplemente inputType="number" no funcionará.

Agregue la siguiente línea de código, y hará el truco 🙂

editText.setRawInputType(Configuration.KEYBOARD_QWERTY);

Esto mostrará primero el teclado numérico, pero también le permite ingresar texto libre.

Más información aquí .

Esto puede depender del dispositivo, pero ha intentado:

  android:inputType="phone" 

Todos los tipos de entrada Link

en el xml de EditText, esto le da el teclado del teclado numérico pero luego puede cambiar a las letras si lo desea. (Al menos en mi Nexus One).

Tenga en cuenta que: setRawInputType (InputType.TYPE_CLASS_NUMBER);

tiene el efecto deseado en algunos dispositivos pero no en otros …

En htc funciona bien, sin embargo, en Galaxy Tab II solo obtienes el teclado numérico y no hay forma de volver a alfa.

escribe el código en XML, android: numeric = “integer” android: inputType = “phone” android: digits = “1234567890”

Parece que la pregunta subyacente con la que está tratando es: ¿cómo puedo permitir que el usuario ingrese cantidades?

Una respuesta adecuada es: con una entrada numérica, emparejada con alguna forma de selección de categoría para la unidad. por ejemplo, radio, menú desplegable o spinner. Esto es probablemente más fácil de usar y también le ahorra el dolor de cabeza de tener que validar su entrada cada vez.

También podría tener cojones de hierro y escribir un teclado suave personalizado.

Intenté muchas combinaciones diferentes antes de darme cuenta de esto, pero parece que funciona correctamente:

 setRawInputType(InputType.TYPE_CLASS_NUMBER); 

La clave está en la descripción de setRawInputType(int) :

Cambie directamente el tipo de contenido entero de la vista de texto, sin modificar ningún otro estado .