2013-02-22 4 views
-4

setOnClickListener 메소드에서이 매개 변수를 전달하는 이유는 무엇입니까?Android 버튼 세부 정보

plz 자세한 내용은?

Button button = (Button) findViewById(R.id.button_send); 
button.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
      // Do something in response to button click 
    } 
});  
+1

왜 API에 이러한 매개 변수가 필요하기 때문입니까? 설명서를 볼 수 있습니다. 그것은 상세히 설명합니다 – Blackbelt

+0

콜백 인터페이스 구현 개념을 알고 있습니까? [this] (http://www.javaworld.com/javatips/jw-javatip10.html) –

답변

1

button.setOnClickListener 실제로는 익명 내부 클래스를 생성합니다. OnClickListener. 익명 클래스는 new 연산자를 사용하여 하나의 간결한 표현식으로 정의되고 인스턴스화됩니다. 간단한 대리자 콜백 객체를 만드는 데 사용됩니다. 이러한 익명의 내부 클래스는 둘러싸는 외부 클래스의 정적 및 인스턴스 변수에 액세스 할 수 있습니다.

자세한 내용은 link을 확인하십시오.

+0

그리고 왜 view 객체를 onCLick 메소드에 전달하고 있습니까? –

1

실제로 이들은 매개 변수가 아닙니다. Java를 잘 알고 있다면 Anonymous Inner Classes에 대해 들어 보셨을 것입니다. onClickListener을 구현하는 것만으로 정확히 필요한 것을 얻을 수 있습니다.

button.setOnClickListener(this);을 코드에 입력하고 OverrideonClick 메서드를 전달하십시오.

+1

이 매개 변수가 아닌 이유를 확인하십시오. – Blackbelt

+0

이들은 익명 내부 클래스 구현입니다 @blackbelt –

+0

그래서 클래스를 매개 변수로 메서드에 전달할 수 없습니까? – Blackbelt