Moje zrozumienie jest, gdy tworzę obiekt przycisk, który nasłuchuje za kliknięcie muszę:setOnclickListener vs OnClickListener vs View.OnClickListener
- utworzyć obiekt przycisk
- użycie OnClickListner aby posłuchać kliknięcie użytkownika
- użycie onClick do wykonywania działań, gdy użytkownik kliknie przycisk
teraz
- dokąd zmierza
setOnClickListener
do powyższej logiki? - Który z nich faktycznie słucha kliknięcia przycisku?
- setOnclickListener?
- ONclickListener?
- View.OnClickListener?
- jakie są różnice między tymi 3?
Oto co znalazłem w Android Dev:
The example below shows how to register an on-click listener for a Button.
// Create an anonymous implementation of OnClickListener
private OnClickListener mCorkyListener = new OnClickListener() {
public void onClick(View v) {
// do something when the button is clicked
}
};
protected void onCreate(Bundle savedValues) {
...
// Capture our button from layout
Button button = (Button)findViewById(R.id.corky);
// Register the onClick listener with the implementation above
button.setOnClickListener(mCorkyListener);
...
}
Można również stwierdzić, że bardziej wygodne do wdrożenia OnClickListener jako część swojej działalności. Pozwoli to uniknąć dodatkowego obciążenia klasy i przydzielania obiektów. Na przykład:
public class ExampleActivity extends Activity implements OnClickListener {
protected void onCreate(Bundle savedValues) {
...
Button button = (Button)findViewById(R.id.corky);
button.setOnClickListener(this);
}
// Implement the OnClickListener callback
public void onClick(View v) {
// do something when the button is clicked
}
}
Czy druga metoda nie byłaby lepsza od innych? Pierwszy i trzeci sposób, abyś najpierw zorientował się, który widok został kliknięty, a następnie nad nim działasz, podczas gdy drugi sposób możesz wskoczyć do niego. Ciekawe, co mówią inni, bo szczerze mówiąc nie jestem w 100% pewien, czy moja logika jest poprawna, czy nie. – CodyEngel
@HuskyHuskie. Wiedz, kiedy należy przejmować się wydajnością, a kiedy nie. Zadaj sobie pytanie: Jak często klika użytkownik? Jaki jest dopuszczalny czas reakcji, gdy użytkownik kliknie? Ile miliona instrukcji java na sekundę wykonuje moje urządzenie docelowe? Garstka instrukcji, które trzeba wykonać, aby dowiedzieć się, który widok jest tak znaczący? Weź również pod uwagę pracę, którą wykonasz, aby obsłużyć kliknięcie. Zliczanie kodu w systemie operacyjnym, które będzie zawierało tysiące, dziesiątki tysięcy, a może setki tysięcy instrukcji java. Myślę, że widzisz, dokąd to zmierza ... – ToolmakerSteve
czy można ich użyć, mam na myśli nie tylko "implementuje View.OnClickListener", ale także "SetOnClickListener" – Patzu