Pregunta

He estado escribiendo una aplicación para Android que está impulsado principalmente por la entrada de teclado de hardware. Estoy en el proceso de añadir soporte para teclado suave, pero no estoy tan ahí todavía. Pero estoy divagando ...

Al principio yo estaba comprobando el valor keyCode entero pasado a mi función OnKey contra las enumeraciones de la clase KeyEvent. Bastante simple ...

Pero necesito saber si el usuario pulsa la combinación de teclas que generarían el símbolo>. Por lo tanto, he comprobado si se ha pulsado ALT y tanto el X keyCode fue aprobada en ... pero resulta que las diferentes teclas en diferentes teléfonos generan el símbolo>.

Ahora, en cambio, estoy comprobando el valor del método de getUnicodeChar KeyEvent en contra de los valores conocidos para los caracteres Unicode.

Mi problema se resuelve - pero ¿hay una forma aceptada de hacer la comprobación del carácter? ¿La mayoría de la gente simplemente no tienen los Alt-símbolos, o son la mayoría de las personas que utilizan las teclas del software que son estándar en todos los dispositivos? No hay incorporado en la tabla de enumeraciones de caracteres Unicode (que yo sepa, de todos modos), por lo que hace el código un poco más feo también. Sólo por curiosidad!

¿Fue útil?

Solución

Creo que estás en lo correcto en que la única manera de detectar qué tecla símbolo / alternativo se ha pulsado es mirar el carácter Unicode.

A menudo, la gente está interesada sólo en las claves primarias, por lo que el KeyCode es suficiente.

Usted no puede depender de ningún particular, IME (teclado en pantalla) que se utiliza. Tenga en cuenta también que el texto introducido a través de un IME se accede por los widgets de texto a través de la InputConnection , lo que a menudo no utiliza KeyEvents como el hardware de los teclados hacen.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top