2010-12-27 5 views
24

여러 개의 onClick 리스너를 android의 버튼에 연결할 수 있습니까? 예 :android에서보기에 여러 수신기를 연결 하시겠습니까?

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

그리고 listener1listener2 모두의 버튼을 클릭 onClick 이벤트가 트리거?

일반적인 GUI 응용 프로그램에서 이벤트에 대해 둘 이상의 이벤트 처리기를 연결할 수 있음을 알고 있습니다. 안드로이드도 가능하거나 제한이 있습니까?

안부, Lalith는

답변

30

안드로이드는 일반적으로 하나의 등록 된 리스너를 지원합니다. 그러나 복합 패턴을 사용하여 이벤트를 다른 리스너로 단순히 전달하는 리스너를 쉽게 작성할 수 있습니다.

+0

당신이 날이에 대한 참조를 알려 주시기 바랍니다 수 참조 엉덩이? – Lalith

+1

@Lalith : 복합 패턴은 고전적인 디자인 패턴입니다. http://en.wikipedia.org/wiki/Composite_pattern – CommonsWare

+0

흠 .. 단일 이벤트 용 다중 이벤트 핸들러가 필요한 주된 이유는 다음과 같은 라이브러리를 만들 계획입니다. 다른 안드로이드 개발자가 사용할 수 있습니다. 그것은 어딘가에 초기화되어야하고 각보기 항목에 필요한 이벤트 처리기를 첨부하여 모두 진행됩니다. 나는 silverlight에서 이것을 쉽게했기 때문에 htat이 가능한지 궁금해하고있었습니다. – Lalith

0

아니, 예를 들어 그냥 이렇게 :

설정 리스너 :

btn.setOnClickListener(this); 

구현 방법 :

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 
    } 
} 
관련 문제