Mi chiedo se sia possibile aggiungere funzionalità a EditText in modo tale che quando includo il mio campo appena esteso nel layout xml, non devo quindi aggiungi qualsiasi codice alla classe Attività per farlo funzionare in modi specifici.Qual è il modo giusto per estendere EditText per dargli ulteriori funzionalità "predefinite"
Ad esempio, mi piacerebbe creare un campo EditPhone che è solo un EditText che ha la caratteristica aggiuntiva di ascoltare eventi chiave e modificare il campo per includere parentesi e trattini nelle posizioni appropriate.
Al momento, devo sempre includere il codice listener e collegarlo alla vista manualmente. Ma ovviamente la classe ha un sacco di comportamenti predefiniti racchiusi in esso (ad esempio, fa apparire la tastiera quando si fa clic). Quindi, immagino che non dovrebbe essere così difficile, ma non sono chiaro su quali sarebbero i passaggi per raggiungere questo obiettivo.
E per essere chiari, non ho bisogno di aiuto con la funzionalità specifica del telefono descritta in precedenza (ho tutto funzionante), sto cercando di capire come estendere View in modo che assuma funzionalità aggiuntive di default, in modo da non dover ingombrare le mie attività con lo stesso codice più e più volte.
e vorrei aggiungere il listener onkey nel metodo init? –
Se ne hai bisogno: Sì. Ma la restrizione all'input di testo è applicata da un filtro di input. Ma puoi impostare e modificare tutto ciò che vuoi in 'init'. – Knickedi
sì, dovrò cercare nel filtro di input per vedere se questo si applica al mio problema, tuttavia vedo quello che stai facendo e hai ragione ... è piuttosto facile :) –