
494 Chapter 11
onClick은 액티비티 전용
뷰를 클릭했을 때
android
:
onClick
속성으로 어떤 메서드를 호출할지
지정하는 부분에 큰 문제가 있습니다. 이 속성은 불러들일 메서드를 현재
액티비티에 대해 지정합니다. 뷰가 액티비티의 레이아웃에 있을 때는 문제가
없습니다. 하지만 뷰가 프래그먼트에 있으면 문제가 생깁니다. 안드로이드는
프래그먼트의 메서드를 호출하지 않고 부모 액티비티에서 이 메서드를
찾는데 메서드가 액티비티에 정의되어 있지 않으면 크래시가 발생합니다.
그래서 이전 페이지의 에러 메시지가 나타난 겁니다.
버튼만의 문제가 아닙니다.
Button
클래스를 상속받는 모든 뷰는
android
:
onClick
속성을 사용할 수 있기 때문입니다. 체크박스,
라디오 버튼, 스위치, 토글 버튼 등이
Button
클래스를 상속받습니다.
이제 프래그먼트의 메서드를 액티비티로 옮겨서 문제를 해결할 수 있지만
단점이 있습니다. 이렇게 하면 더 이상 프래그먼트가 자체적으로 모든
기능을 포함하지 않으므로 프래그먼트를 재사용하려는 모든 액티비티에서
이 코드를 포함해야 하는 문제가 생깁니다. 프래그먼트에서 이 문제를
해결하는 방법을 알아봅시다.
액티비티
android:onClick을 발견하면
제 이야기라고 생각해요.
그래서 프래그먼트의 메서드가 ...