Me pregunto si es posible agregar funcionalidad a EditText de modo que cuando incluya mi campo recién ampliado en el diseño xml, no tenga que luego agregue cualquier código a la clase Activity para que se comporte de formas específicas.¿Cuál es la forma correcta de extender EditText para darle funcionalidad adicional "predeterminada"?
Por ejemplo, me gustaría crear un campo EditPhone que sea solo un EditText que tenga la función adicional de escuchar eventos clave y modificar el campo para incluir paréntesis y guiones en sus ubicaciones correspondientes.
Por el momento, siempre tengo que incluir el código del oyente y adjuntarlo a la vista, de forma manual. Pero, obviamente, la clase tiene un montón de comportamiento predeterminado que está envuelto en ella (por ejemplo, hace que aparezca el teclado al hacer clic). Entonces, supongo que no debería ser tan difícil, pero no tengo claro cuáles serían los pasos para lograr esto.
Y para ser claro, no necesito ayuda con la función específica del teléfono descrita anteriormente (lo tengo todo resuelto), estoy tratando de entender cómo ampliar la Vista de una manera que toma una funcionalidad adicional de forma predeterminada, para no tener que saturar mis actividades con el mismo código una y otra vez.
y agregaría el oyente de la llave en el método init? –
Si necesita uno: Sí. Pero la restricción a la entrada de texto se aplica mediante un filtro de entrada. Pero puedes establecer y modificar cualquier cosa que quieras en 'init'. – Knickedi
sí, tendré que buscar en el filtro de entrada para ver si eso se aplica a mi problema; sin embargo, veo lo que estás haciendo y tienes razón ... es bastante fácil :) –