2010-12-27 12 views
24

Android'deki butonlara birden çok onClick dinleyicisi eklemek mümkün mü? Örnek:Android'de görünümlere birden çok dinleyici ekleme?

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

Ve listener1 ve listener2 hem düğmesi tıklandığında onClick olayı tetiklenir?

Normal GUI uygulamalarında, bir etkinlik için birden çok olay işleyicisi ekleyebileceğimizi biliyoruz. Android için de mümkün mü yoksa herhangi bir kısıtlama var mı?

Selamlar, Lalith

cevap

30

Android sadece genel bir kayıtlı dinleyici destekler. Ancak, kompozit desenini kullanarak olayları diğer dinleyicilere ileten bir dinleyici kolayca oluşturabilirsiniz.

+0

beni bunun için herhangi bir referans bildirin lütfen misiniz bkz eşek? – Lalith

+1

@Lalith: Kompozit desen klasik bir tasarım deseni: http://en.wikipedia.org/wiki/Composite_pattern – CommonsWare

+0

Hmm .. tek olay için birden fazla olay işleyicisine ihtiyacım olan ana neden olacak bir kütüphane oluşturmayı planlıyorum diğer android geliştiriciler tarafından kullanılmalıdır. Bir yerde başlatılması gerekiyordu ve her bir View öğesine her bir olay için gerekli olay işleyicilerini ekliyor. Bunu kolayca gümüşte yaptım, bu yüzden mümkün mü diye merak ettim. – Lalith

0

Hayır, örneğin sadece bu yapın:

Seti Dinleyici:

btn.setOnClickListener(this); 

uygulayın Yöntem:

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 
    } 
}