안드로이드에서 리스너를 등록할때
예를들어
btn.setOnclickLisener(this);
하잖아요?
그럴때 this를 넘기는데
이 this를 넘긴다는것이 현재 클래스의 객체를 넘긴다는건가요?
만약 그렇다면 이렇게 넘어가는 this는 어떻게 활용이 되는지
리스너의 내부 구조가 궁금합니다.
Button.setOnClickListener(View.OnClickListener listerner) 로 정의되어있습니다.
실제로 Button으로 넘어가는 것은 this라는 객체가 넘어갑니다.
또한 this를 넘겼다는건.. 현재 객체가 View.OnClickListener 인터페이스를 상속 받아서 구현을 했기 때문에 가능합니다.
Button 클래스에서도 인자로 받은 listener를 View.OnClickListener로 저장하고 있다가.. 인터페이스에 정의된 메소드를 호출합니다.
이때 호출하는건 onClick() 메소드가 되겠죠. 이 메소드의 구현부는 this로 넘겨줬던 객체에 구현되어 있기 때문에 Buntton이 클릭되면, this로 넘겨줬던 객체에 구현한 onClick() 메소드가 실행됩니다.
오와 정말 명쾌합니다.
호군님 진심으로 감사 드립니다.^^
로그인 유지
Button.setOnClickListener(View.OnClickListener listerner) 로 정의되어있습니다.
실제로 Button으로 넘어가는 것은 this라는 객체가 넘어갑니다.
또한 this를 넘겼다는건.. 현재 객체가 View.OnClickListener 인터페이스를 상속 받아서 구현을 했기 때문에 가능합니다.
Button 클래스에서도 인자로 받은 listener를 View.OnClickListener로 저장하고 있다가.. 인터페이스에 정의된 메소드를 호출합니다.
이때 호출하는건 onClick() 메소드가 되겠죠. 이 메소드의 구현부는 this로 넘겨줬던 객체에 구현되어 있기 때문에 Buntton이 클릭되면, this로 넘겨줬던 객체에 구현한 onClick() 메소드가 실행됩니다.