ListView의 Item에 포함된 control이 여러개일 경우 각각 다른 listener를 달아주어야한다.
list의 각 item들은 position에 종속적이고, item의 control은 해당 item에 종속적이다.
아래는 ListView의 item에 CheckBox, Button을 넣어 리스트를 클릭했을 때, 체크박스를 체크했을 때, 버튼을 클릭했을 때 각각의 이벤트 처리를 하는 예제.
핵심은 Listener를 상속받는 class를 객체로 만들어 Holder에 포함시키고 ListAdapter의 getView()에서 Listener class와 Item을 연결해준다.(3-2 ~ 3-4)
01. layout xml 생성 (ListView를 포함)
02. list item xml 생성 (CheckBox, TextView, Button을 포함)
03-1. Item class 생성
03-2. Item에 포함된 CheckBox의 Check Event를 받을 Listener class 생성(OnCheckedChangeListener를 상속)
/ Item에 포함된 Button의 Click Event를 받을 Listener class 생성(OnClickListener를 상속)
* 각각의 Listener들을 Holder의 객체로 사용하기 위해 class화 시킨다.(Item의 Item)
03-3. List Item의 Holder class 생성(item안의 모든 View(Control)를 담고있는 class)
03-4. List의 Adapter class 생성(Holder의 item과 item의 Listener를 getView()에서 연결)
03-5. List Set
3-6. 임시 Data Setting
03-7. List OnItemClickListener 작성(기존 List의 ItemClick 시 반응할 Listener)
04. 결과 화면
>> 전체 소스코드
'Android' 카테고리의 다른 글
[android]eclipse change attached source not working (0) | 2014.03.06 |
---|---|
[android]2장의 이미지를 3D 회전 전환시키기 _ 3D-Rotate two images using the ViewSwitcher (0) | 2014.02.17 |
[android]EditText without cursor _ EditText에서 커서 제거 (0) | 2014.02.06 |
[android]source code에서 투명한 화면 만들기 (0) | 2013.11.06 |
[android]intent parseUri()로 class 호출하기 (0) | 2013.09.11 |