2011-11-10 16 views
6

Estoy tratando de idear un tipo de entrada para un campo que aceptará números de tarjeta de crédito.InputType adecuado para tarjetas de crédito

He estado usando inputType = "number" - pero eso no permitirá que las personas con teclados de hardware presionen la barra espaciadora ... cuando lo hagan saltará a otro campo en la actividad.

Me gustaría permitir que los usuarios utilicen un espacio en sus números si así lo desean, o, al menos, hacerlo de modo que si los usuarios con un teclado de hardware alcanzan el espacio cuando solo estoy permitiendo números, ganó ' Deje el número de la tarjeta de crédito EditText.

Idealmente, podría implementar alguna interfaz y tener mi propio tipo de entrada personalizado, pero no estoy seguro de que sea posible.

  • ¿Es posible permitir números y espacios, mientras se muestran los números del teclado virtual?
+0

He intentado dejarlo "número" y añadiendo androide: imeOptions = "flagNoEnterAction" al EditarTexto, pero aún así - cuando se golpea la barra espaciadora del teclado de hardware, salta a una aparentemente EditText al azar más abajo en el diseño de la actividad. –

+0

["Para interceptar llaves duras, anule InputMethodService.onKeyDown()"] (http://developer.android.com/resources/articles/creating-input-method.html). Lea desde el título inferior "Intercepción de eventos de tecla dura". ¿Podría ayudar? – Graeme

+0

Si no puede encontrar una manera de interceptar, intente utilizar un TextView normal y abra manualmente el teclado numérico. [Estos recursos] (http://developer.android.com/resources/browser.html?tag=input) fueron realmente útiles para mí cuando trabajaba en InputMethods. – Graeme

Respuesta

1

no tengo una respuesta definitiva para usted, pero aquí hay algunos recursos que recogí:

Me encontraron esta pista para "capturar" las pulsaciones de teclas duras: "To intercept hard keys, override InputMethodService.onKeyDown()". Lea desde el título inferior "Intercepción de eventos de tecla dura".

Si no puede encontrar una manera de interceptar y manejar la tecla "espacio", le sugiero que use una vista de texto normal y abra manualmente el teclado numérico en lugar del qwerty (Vaya aquí para obtener más información sobre general Input Reference) A continuación, puede validar la tecla presionada desde el teclado rígido.

¡Lo siento, no pude darle una respuesta más sólida!

+0

Creo que esto es lo que tendré que hacer en este caso ... pero es extraño porque solo la barra espaciadora pasará el cursor a otro campo - cualquier otro carácter no permitido simplemente no hace nada y deja el campo "número" seleccionado. –

2

¿Qué hay de android:inputType="phone" en el archivo xml de diseño?

+0

También estoy interesado en ideas sobre esto, esto se ve mucho mejor mostrando el teclado con números más grandes –

Cuestiones relacionadas