2010-12-27 43 views
24

Có thể đính kèm nhiều trình nghe onClick vào các nút trong Android không? Ví dụ:Đính kèm nhiều người nghe vào chế độ xem trong Android?

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

Và khi nút được nhấp onClick sự kiện của cả hai listener1listener2 được kích hoạt?

Trong các ứng dụng GUI thông thường, tôi biết rằng chúng tôi có thể đính kèm nhiều trình xử lý sự kiện cho một sự kiện. Có thể cho android quá hoặc là có bất kỳ hạn chế?

Trân trọng, Lalith

Trả lời

30

Android chỉ hỗ trợ một người nghe đăng ký nói chung. Tuy nhiên, bạn có thể dễ dàng tạo một trình lắng nghe chỉ đơn giản là chuyển tiếp các sự kiện đến các trình nghe khác bằng cách sử dụng mẫu tổng hợp.

+0

Bạn có thể vui lòng cho tôi biết bất kỳ tham chiếu nào về điều này không? – Lalith

+1

@Lithith: Mẫu tổng hợp là mẫu thiết kế cổ điển: http://en.wikipedia.org/wiki/Composite_pattern – CommonsWare

+0

Hmm .. lý do chính tôi cần nhiều trình xử lý sự kiện cho một sự kiện là tôi định tạo thư viện được sử dụng bởi các nhà phát triển Android khác. Nó được cho là được khởi tạo ở đâu đó và nó đi tất cả bởi chính nó gắn các trình xử lý sự kiện cần thiết cho mỗi mục View. Tôi đã làm điều này trong Silverlight dễ dàng vì vậy đã tự hỏi nếu htat là có thể. – Lalith

0

Nope, ví dụ chỉ làm điều này:

Set Thính giả:

btn.setOnClickListener(this); 

Thực hiện Phương pháp:

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 
    } 
} 
Các vấn đề liên quan