2009-07-13 20 views
121

Básicamente quiero cambiar al modo de teclado numérico tan pronto como un cierto EditText tiene el foco.¿Cómo se muestra el teclado numérico en EditText en android?

+4

La pregunta no especifica un deseo de cambiar el tipo de entrada permitida. Simplemente pregunta cómo cambiar el modo de 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

+0

Compruebe mi respuesta en esta pregunta http: // stackoverflow.com/questions/39593324/can not-resolve-symbol-showsoftinput/39593871 # 39593871 –

Respuesta

224

Puede configurar un inputType para su EditText:

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

Eso es sorprendentemente fácil. vítores –

+6

También tenga en cuenta que debe apuntar a Android 1.5 para usar esto (no está disponible en 1.1) – Wilka

+4

El problema es que no puede volver atrás. El uso de "número | texto" tampoco funciona. Parece que si quieres mostrar un teclado numérico, no puedes permitir que vuelva a cambiar al texto. –

107

hacerlo en un archivo Java:

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

encontré esta aplicación útil, muestra una mejor caracteres de entrada de teclado y límites.

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

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

Para hacer esto mediante programación:

editText.setInputType(InputType.TYPE_CLASS_PHONE); 

KeyListener keyListener = DigitsKeyListener.getInstance("1234567890"); 
editText.setKeyListener(keyListener); 
+0

¿Hay alguna manera de hacer esto programáticamente? Morir para obtener un teclado numérico limitado para EditText, pero está configurado de tal manera que debe generarse en la actividad. – santafebound

3

Si usted está utilizando su EditarTexto de diálogo o crear de forma dinámica y no se puede establecer que a partir de XML a continuación, este ejemplo que le ayudará en la creación de ese tipo de teclado, mientras está utilizando Editar texto dinámico etc

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER); 

donde myEditTxt es la dinámica EDITAR TEXTO objeto (nombre)

10

usted puede hacerlo de 2 maneras

  1. tiempo de ejecución ajustado

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

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

mostrará el gran teclado numérico como marcador.

+0

¡exactamente lo que necesito! – jjLin

0
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER); 
2

Más tipos de entrada y detalles encontraron here en sitios web de Google

4

Si necesitas número fraccionario, entonces esta es la respuesta para usted:

android:inputType="numberDecimal" 
0

definir esta en el código XML

android:inputType="number" 
0

Utilice el siguiente código en el archivo java

editText.setRawInputType (Configuration.KEYBOARD_QWERTY);

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

¿Puedes explicar el código? – MBH

Cuestiones relacionadas