2011-11-10 19 views
6

Sto provando a inventare un tipo di input per un campo che accetterà i numeri delle carte di credito.Input corretto Tipo di carta di credito

Avevo utilizzato inputType = "number" - ma questo non permetterà alle persone con tastiere hardware di colpire la barra spaziatrice .. quando lo fanno salta a un altro campo nell'attività.

Vorrei consentire agli utenti di utilizzare uno spazio nei loro numeri se lo desiderano, o, almeno, farlo in modo che se gli utenti con una tastiera hardware colpiscono lo spazio quando sto permettendo solo i numeri che ha vinto " lasciare il numero della carta di credito EditText.

Idealmente sarei in grado di implementare alcune interfacce e avere il mio inputType personalizzato, ma non sono sicuro che sia possibile.

  • È possibile consentire numeri e spazi, mentre si visualizza la tastiera virtuale numeri?
+0

Ho provato lasciando "numero" e l'aggiunta di Android: imeOptions = "flagNoEnterAction" al EditText, ma ancora - quando la barra spaziatrice della tastiera hardware viene colpito, si salta a un EditText apparentemente casuale più avanti nel layout dell'attività. –

+0

["Per intercettare i tasti di scelta rapida, eseguire l'override di InputMethodService.onKeyDown()"] (http://developer.android.com/resources/articles/creating-input-method.html). Leggi dall'intestazione in basso "Intercettazione degli eventi chiave". Potrebbe aiutare? – Graeme

+0

Se non riesci a trovare un modo per intercettare prova a utilizzare un normale TextView e apri manualmente la tastiera numerica. [Queste risorse] (http://developer.android.com/resources/browser.html?tag=input) mi sono state di grande aiuto quando stavo lavorando su InputMethods. – Graeme

risposta

1

Non ho una risposta definitiva per voi, ma qui ci sono alcune risorse che ho raccolto:

ho trovato per "catturare" le pressioni dei tasti duri questo indizio: "To intercept hard keys, override InputMethodService.onKeyDown()". Leggi dall'intestazione in basso "Intercettazione degli eventi chiave".

Se non riesci a trovare un modo per intercettare e gestire il tasto "spazio", ti suggerirei di utilizzare un normale TextView e di aprire manualmente la tastiera numerica piuttosto che quella qwerty (Vai qui per maggiori informazioni sul generale Input Reference). È quindi possibile convalidare il tasto premuto dalla tastiera.

Scusate, non potevo darvi una risposta più solida!

+0

Penso che questo sia quello che dovrò fare in questo caso .. ma è strano perché solo la barra spaziatrice salterà il cursore su un altro campo - qualsiasi altro carattere non consentito non fa nulla e lascia il campo "numero" selezionato. –

2

Che ne dici di android:inputType="phone" nel file xml del layout?

+0

Sono interessato anche a approfondimenti su questo, questo sembra molto meglio mostrando tastiera con numeri più grandi –

Problemi correlati