Ich bin schockiert, dass niemand darüber gesprochen hat, aber seien Sie vorsichtig, obwohl android:onClick
XML eine bequeme Möglichkeit zu sein scheint, mit Klicks umzugehen, macht die setOnClickListener
Implementierung etwas Zusätzliches als das Hinzufügen von onClickListener
. In der Tat hat es die Eigenschaft view clickable
auf true gesetzt.
Während dies bei den meisten Android-Implementierungen möglicherweise kein Problem darstellt, ist die Schaltfläche laut Telefonkonstruktor standardmäßig immer klickbar = wahr, während andere Konstruktoren in einigen Telefonmodellen in Nicht-Schaltflächenansichten möglicherweise standardmäßig klickbar = falsch sind.
Das Festlegen des XML-Dokuments reicht also nicht aus. Sie müssen die ganze Zeit darüber nachdenken, eine android:clickable="true"
Nicht-Schaltfläche hinzuzufügen. Wenn Sie ein Gerät haben, auf dem die Standardeinstellung anklickbar ist = true, und Sie einmal vergessen, dieses XML-Attribut einzufügen, werden Sie es nicht bemerken Das Problem zur Laufzeit wird aber das Feedback auf den Markt bekommen, wenn es in den Händen Ihrer Kunden liegt!
Darüber hinaus können wir nie sicher sein, wie Proguard XML-Attribute und Klassenmethoden verschleiern und umbenennen wird, sodass wir nicht 100% sicher sind, dass sie eines Tages niemals einen Fehler haben werden.
Wenn Sie also nie Probleme haben und nie darüber nachdenken möchten, ist es besser, setOnClickListener
Bibliotheken wie ButterKnife mit Anmerkungen zu verwenden@OnClick(R.id.button)
onclick
da Sie sicherstellen müssen, dass jede Klasse diese Methode implementiert. Dies setzt voraus, dass Sie das Layout mehrmals verwenden. Wenn Sie jedoch eine Java-Schnittstelle hätten, um sicherzustellen, dass die Methode in allen Klassen vorhanden ist, die sie implementiert haben, müssen Sie sich keine Sorgen machen.