마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

include 로 추가한 레이아웃에 이벤트 등록은 어떻게 해야하나요?

0 추천
안녕하세요.

 

layout에서 include로 동일 레이아웃을 여러개 넣어서 쓰고있는데요.

얘네들 각자 따로 onClick 같은거 등록시켜주려고 하는데 어떻게 해야하나요?

 

즐거운 주말 보내세요~
chensi (160 포인트) 님이 2013년 3월 10일 질문
답변주신 두 분 정말 감사합니다.
뷰그룹으로 찾이 써야겠네요 ㅎㅎ

2개의 답변

0 추천

id 는 화면상에 단일한 개념으로 순회시 처음 걸리는 View가 최초로 반환됩니다. 그래서 include 로 넣은 경우 나중에 추가된 요소들에 대해서 id 접근이 불가능합니다 .

Java 소스로 클릭 이벤트는 기본적인 거니, 넘어가고 include 시에 자원을 찾는 방법만 기술합니다.

include 한 요소에 대해서 접근 방법은 두가지로 생각할수 있습니다. 
 

1. ViewGroup (LinearLayout등) 을 순회로 알아내기 ~ include 에 특수한 부분이 아니라 ViewGroup 을 순회하면서 찾아내는 일반적인 스킬입니다. 
 

2. include 시에 각각 새로운 id 지정해서 findViewById 로 접근하기 ~ 아래 공식 문서를 참고하세요. 

http://developer.android.com/training/improving-layouts/reusing-layouts.html


간단히 이야기 하면, include 시에 기술된 attribute 는 include 대상 레이아웃의 최상위 객체의 값을 덮어씁니다.

상인 (6,670 포인트) 님이 2013년 3월 10일 답변
상인님이 2013년 3월 10일 수정
0 추천
include 할 xml 파일에 내용을 복사하여 현재 include 구문대신 붙여넣기 했다고 생각하세요..

이벤트를 등록시킬 View 객체마다 id 값을 등록시켜주고 해당 id를 findViewById로 연결하고...

OnClickListener에 적용시키면 됩니다..
발가락도사 (190 포인트) 님이 2013년 3월 10일 답변
...