Avendo una solida esperienza in area non Java e non Android, sto imparando Android.Android: come gestire il clic del pulsante
Ho molta confusione con aree diverse, una delle quali è come gestire i clic sui pulsanti. Ci sono almeno 4 modo di fare che (!!!), sono elencate brevemente here
fini di coerenza io li elenco:
a un membro della classe
View.OnClickListener
nell'attività e assegnarlo a un'istanza che gestirà la logicaonClick
nel metodo di attivitàonCreate
.Crea 'onClickListener' nel metodo dell'attività 'onCreate' e assegnare al pulsante utilizzando setOnClickListener
Implementare 'onClickListener' in attività stessa e assegnare 'questo' come listener per il pulsante. Nel caso in cui l'attività abbia pochi pulsanti, l'id del pulsante deve essere analizzato per eseguire il gestore onClick per il pulsante corretto
Avere un metodo pubblico sull'attività che implementa la logica 'onClick' e assegnarlo al pulsante nell'attività dichiarazione XML
domanda # 1:
sono quelli tutti i metodi, c'è qualche altra opzione? (Non ho bisogno di altri, solo curioso)
Per me, il modo più intuitivo sarebbe l'ultimo: richiede la minima quantità di codice da digitare ed è il più leggibile (almeno per me) .
Tuttavia, non vedo questo approccio ampiamente utilizzato. Quali sono i contro per usarlo?
Domanda # 2:
Quali sono i pro/contro per ciascuno di questi metodi? Condividi la tua esperienza o un buon link.
Qualsiasi commento è benvenuto!
P.S. Ho provato a cercare qualcosa su Google per questo argomento, ma le uniche cose che ho trovato sono la descrizione "come" per farlo, non perché è buono o cattivo.
Per l'opzione 2 ti consigliamo di farlo: clickButton.setOnClickListener (new View.OnClickListener() {@Override public void onClick (Visualizza v) {// TODO cosa vuoi fare}}); per aiutarlo a risolvere OnClickListener – ColossalChris
L'opzione 3 è probabilmente la più pulita e semplice da estendere con il pattern MVP. – Raffaeu
L'opzione 2 può ancora produrre 'onCreate()' che non è terribilmente lungo. Gli assegnamenti del listener di clic e le classi anonime possono essere scomposti in un metodo di helper separato chiamato da 'onCreate()'. –