안드로이드 개발 질문/답변
(글 수 2,584)
sdk7버젼으로 [예제로 시작하는 안드로이드]에 예제를 따라하면서 궁금한 점이 있어 질문 드립니다.
버튼의 인스턴스 변수를 생성하고 나서 클릭이벤트의 리스너를 구현할때
View.OnClickListener와 Button.OnClickListener의 차이점을 알고 싶습니다.
책에서는 밑에 코드에서 빨간 부분이 Button.OnClickListener으로 예시되어 있는데
그대로 작성할때는 코드어시스트가 동작하지 않습니다.
View.OnClickListener로 바꿔 코딩할땐 코드어시스트가 동작하고 실행해봐도 에러가 나지 않네요....
빨간 부분을 OnClickListener로만 쓰고 라이브러리등록 단축키를 누르면 자동으로 View.OnClickListener로 등록이 되더라구요.
코드어시스턴트에서는 View.OnClickListener만 나와있던데 다른 점이 무엇인지 궁금합니다.
버튼의 인스턴스 변수를 생성하고 나서 클릭이벤트의 리스너를 구현할때
View.OnClickListener와 Button.OnClickListener의 차이점을 알고 싶습니다.
책에서는 밑에 코드에서 빨간 부분이 Button.OnClickListener으로 예시되어 있는데
그대로 작성할때는 코드어시스트가 동작하지 않습니다.
View.OnClickListener로 바꿔 코딩할땐 코드어시스트가 동작하고 실행해봐도 에러가 나지 않네요....
빨간 부분을 OnClickListener로만 쓰고 라이브러리등록 단축키를 누르면 자동으로 View.OnClickListener로 등록이 되더라구요.
코드어시스턴트에서는 View.OnClickListener만 나와있던데 다른 점이 무엇인지 궁금합니다.
Button btn = (Button)findViewById(R.id.bntGo); btn.setOnClickListener(wvOnClick); private View.OnClickListener wvOnClick = new View.OnClickListener(){ @Override public void onClick(View v) { <something> } }
2010.03.31 14:26:08
음? Button 에 별도의 OnClickListener 가 있나요? Button 은 View 를 상속받아 만들어진 View 의 Subclass 이기 때문에 그냥 View.OnClickListener 말고 별도로 Button.OnClickListener 라는 것은 없는걸로 알고 있습니다. Dialog 쪽에는 별도로 있긴 하지만...그걸 말씀하시는건 아닌 듯?
2010.03.31 14:29:55
음....그럼 책에서처럼 Button 클래스가 아닌 View클래스로 구현해도 무방하겠네요........
휴우님이 말씀하신데로 이클립스 코드어시스트에서는 Button.OnClickListener는 없는데 책 예제에 코딩이 그렇게 되어 있어서
질문 드렸던 겁니다.....답변 감사합니다.
휴우님이 말씀하신데로 이클립스 코드어시스트에서는 Button.OnClickListener는 없는데 책 예제에 코딩이 그렇게 되어 있어서
질문 드렸던 겁니다.....답변 감사합니다.
2010.04.26 17:46:58
View class안의 onClickListener는 interface입니다. 메소드가 아니고요.
private
View.OnClickListener wvOnClick =
new
View.OnClickListener(){
05.
@Override
06.
public
void
onClick(View v) {
07.
<something>
08.
}
09.
}
그래서 이부분에서 interface를 구현한 것이고요.
이렇게 만들어진 wvOnclick을 button.setOnClickListener의 인자로 넣어줍니다.
(setOnClickListener는 View의 메소드입니다. )
button. setOnClickListener는 view에서 상속받은 메소드를 사용하는 것이고요.