Sono scioccato che nessuno ne abbia parlato, ma attenzione, anche se android:onClick
XML sembra essere un modo conveniente per gestire i clic, l' setOnClickListener
implementazione fa qualcosa di più dell'aggiunta di onClickListener
. In effetti, mette la proprietà view clickable
su true.
Anche se potrebbe non essere un problema sulla maggior parte delle implementazioni Android, secondo il costruttore del telefono, il pulsante è sempre predefinito su clickable = true ma altri costruttori su alcuni modelli di telefono potrebbero avere un clickable = false predefinito su visualizzazioni non Button.
Quindi impostare l'XML non è sufficiente, devi pensare tutto il tempo ad aggiungere un android:clickable="true"
pulsante non, e se hai un dispositivo in cui l'impostazione predefinita è cliccabile = vero e dimentichi anche una volta di mettere questo attributo XML, non te ne accorgerai il problema in fase di esecuzione ma riceverai il feedback sul mercato quando sarà nelle mani dei tuoi clienti!
Inoltre, non possiamo mai essere sicuri di come proguard offuscherà e rinominerà gli attributi XML e il metodo di classe, quindi non siamo sicuri al 100% che non avranno mai un bug un giorno.
Quindi se non vuoi mai avere problemi e non pensarci mai, è meglio usare setOnClickListener
o librerie come ButterKnife con annotazioni@OnClick(R.id.button)
onclick
quanto è necessario assicurarti che ogni classe implementi quel metodo. Questo presuppone che tu stia utilizzando il layout più di una volta. Tuttavia, se dovessi avere un'interfaccia java per assicurarti che il metodo sia in tutte le classi che lo hanno implementato, non dovresti preoccuparti.