2012-12-15 3 views
3

버튼을 클릭 할 때 (예 : 로그 작성) 더 많은 작업을 수행하고 모든 인스턴스에 지정된 할당 된 클릭 수신기를 실행할 수있는 사용자 정의 버튼을 구현하려고합니다. 버튼의 그게 가능하니?Android 사용자 정의 버튼 일반 클릭 핸들러

많은 감사

+0

이 표준처럼 들린다 지정된 클릭 리스너를 실행하기 전에 솔루션 난 행동의 표준 세트 (이 경우 그냥 로그를 작성하는 것)을 할 수있는 버튼의 모든 인스턴스에 대해이 방법으로 발견 버튼 동작. 당신이 설명하는 것은 표준 버튼 기능이며 안드로이드에서 작동합니다. 자세한 내용을 알려주십시오. – Booger

+0

내가 뭘 하려는지 다음과 같습니다 : 나는 Button을 확장하는 클래스가 있습니다. 이 버튼 클래스는 응용 프로그램 전체에서 사용되므로 여러 번 사용됩니다. 응용 프로그램은 비즈니스 환경에서 사용되며 사용자가 문제를보고 할 때 우리는 문제를 조사하기 위해 그를 데려갑니다. 그래서 사용자 활동의 흔적을 가지고, 나는 사용자가 버튼을 클릭 할 때마다 로그를 쓰고 싶습니다. (나는 ID를 가진 리소스의 이름을 얻는 함수를 가지고 있습니다.) 따라서 모든 클릭 리스너에 로그를 쓰지 않아도되지만 버튼 자체에는이 논리가 있어야합니다. – Apperside

답변

5

@Override 
    public void setOnClickListener(final OnClickListener l) { 

     super.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       LogHelper.WriteLogInfo("click"); 
       l.onClick(v); 

      } 
     }); 
    } 
2

이 시도 :

당신의 활동에 대한 OnClickListener를 구현 :이 같은 모든 뷰에 대한

public class MainActivity extends Activity implements OnClickListener 

추가 클릭 리스너 : 그런 무시

boldButton = (Button) findViewById(R.id.bold); 
boldButton.setOnClickListener(this); 

을의 OnClick을 모든보기에 공통적 인 이벤트 :

@Override 
    public void onClick(View v) { 
     switch (v.getId()) { 
     case R.id.bold: 
      // Do Something     
      break; 

     case R.id.italic: 
      // Do Something 
      break; 

     case R.id.underline: 
      // Do Something 
      break; 

     case R.id.reset: 
      // Do Something 
      break; 

     default: 
      break; 
     } 
    } 

희망이 있으면 도움이됩니다.

감사합니다.

+0

제안에 감사드립니다,하지만 버튼이 백 번 사용되기 때문에이 작업을 수행 할 수 없습니다. – Apperside