2010-12-27 16 views
24

Czy istnieje możliwość dołączania wielu detektorów onClick do przycisków w systemie Android? Przykład:Dołączanie wielu detektorów do widoków w systemie Android?

btn1.setOnClickListener(listener1); 
btn1.setOnCliclListener(listener2); 

A gdy kliknięciu przycisku zdarzenie onClick zarówno listener1 i listener2 są wywoływane?

W normalnych aplikacjach GUI wiem, że możemy dołączyć więcej niż jeden program obsługi zdarzeń do zdarzenia. Czy jest to możliwe również dla Androida lub czy są jakieś ograniczenia?

Pozdrawiam, Lalith

Odpowiedz

30

Android obsługuje tylko jedną zarejestrowaną słuchacza w ogóle. Można jednak łatwo utworzyć detektor, który po prostu przekazuje zdarzenia do innych odbiorców przy użyciu wzorca złożonego.

+0

Czy możesz mi dać jakieś referencje? – Lalith

+1

@Lalith: złożony wzór jest klasycznym wzorem: http://pl.wikipedia.org/wiki/Composite_pattern – CommonsWare

+0

Hmm .. głównym powodem, dla którego potrzebuję wielu programów obsługi zdarzeń dla pojedynczego zdarzenia, jest planowanie utworzenia biblioteki, która będzie być używane przez innych programistów Androida. Ma być gdzieś zainicjalizowany i sam dołącza wymagane moduły obsługi zdarzeń do każdego elementu View. Zrobiłem to w silverlight łatwo więc zastanawiałem się, czy htat jest możliwe. – Lalith

0

Nie, na przykład po prostu to zrobić:

zestaw Listener:

btn.setOnClickListener(this); 

Wdrożenie metoda:

public void Onclick(View arg0){ 

    // check your id and do what you want 
} 
2
public void onClick(View v) { 
    if(v.getId() == R.id.button1) { 
     // do this 
    }else if(v.getId() == R.id.button2) { 
     // do that 
    } 
} 
Powiązane problemy