Pregunta

Me gustaría mostrar un campo de entrada personalizado (específicamente, uno que contiene solo 9-0 y dos botones adicionales que contienen separador decimal (, o.) Y un botón de eliminación).

Podría crear un IME personalizado, pero (hasta donde yo sé) eso debería ser establecido por el usuario como el método de entrada en todo el sistema. ¿Hay alguna forma de implementar un método de entrada y vincularlo a un campo de entrada específico?

¡Gracias por la ayuda!

¿Fue útil?

Solución

Creo que tienes razón en el sentido de que no puedes tener un IME personalizado que solo usas para campos específicos en tu aplicación. El usuario habría encendido globalmente a nivel mundial.

Lo que sea que hagas asegúrate de tener un apropiado InputFilter Para ir con cualquier método de entrada personalizado, debe restringir la entrada de un teclado de hardware.

Como has establecido android:inputType Para el campo esto agregará un apropiado InputFilter automáticamente y también decir que lo que se selecciona IME para mostrar los botones de entrada apropiados. Para el Android IME predeterminado, todo esto es mostrar la página numérica en lugar de la página alfabética primero:

alt text

Otros consejos

¿Qué hay de usar una especie de "ventana emergente" personalizada en el lugar donde su aplicación implementa un onClick() o onTouch() oyente para el cuadro de entrada para que cuando el usuario haga clic en el campo de entrada para ingresar un valor, ve una nueva actividad simple con el método de entrada anulado según lo sugerido por @Dave Webb. En teoría no debería ser demasiado más código o sobrecarga.

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