안드로이드 개발 질문/답변
(글 수 45,052)

제가 알람을 만들기 위해서
ListView를 이용해서 알람 목록을 표시 하고 있는데요
custom adapter를 이용해서 목록에 check box를 집어 넣었습니다
각각의 checkbox를 클릭했을 때 이벤트는 어떻게 처리 해줘야 하나요??
체크 박스 id를 이용해서 리스너를 등록하자니
각각의 체크박스에 대한 리스너를 등록할수도 없고..
어떻게 해야 될까요 조언 부탁 드립니다
2010.07.30 17:34:32
전체 리스트 뷰에 아이템터치 리스너 등록 하시면요
각 아이템에 대한 이벤트를 얻으실 수 있잖아요 포지션 머 그런거
그 포지션을 이용해서 이벤트를 주시면 될텐데요.;;
아답터를 사용 하셨으면 .setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v,
int position, long id) {
머 이런식으로 해서 클릭햇을 경우 포지션에 해당하는 if문으로 이벤트 주셔도 되고
포지션 저장 해서 한번에 일괄 처리 하는 이벤트 주셔도 되구요
2010.07.30 17:45:08
전 그것보다 Checkable을 Implement한 LinearLayout 을 하나 만들어서...
그것을 item의 레이아웃으로 쓰고(그안에 체크박스 있습니다.)
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 하면 항목 터치할때마다 layout에
setChecked 메소드 호출 오거든요
그때 체크 상태 보고 check박스 상태 조절해서 해결했습니다.
리스트에서 선택된 정보를 끌고와서 후처리 (삭제라던가 등등)도 깔끔하게 가능합니다.
그것을 item의 레이아웃으로 쓰고(그안에 체크박스 있습니다.)
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 하면 항목 터치할때마다 layout에
setChecked 메소드 호출 오거든요
그때 체크 상태 보고 check박스 상태 조절해서 해결했습니다.
리스트에서 선택된 정보를 끌고와서 후처리 (삭제라던가 등등)도 깔끔하게 가능합니다.
2010.07.30 17:57:40
LinearLayout을 상속 받아서 CheckableLinearLayout을 만드시면요
xml에 (만약 패키지 이름이 a.b.c라면)
이렇게 쓰실수 있습니다. LinearLayout을 상속 받았기 때문에 그냥 똑같이 쓸수 있죠. 패키지랑 이름만 쓰면요.
혹시 오류가 나면 다음 생성자를 추가시켜 주세요.
xml에 (만약 패키지 이름이 a.b.c라면)
<a.b.c.CheckedLinearLayout ........ > ..... </a.b.c.CheckedLinearLayout>
이렇게 쓰실수 있습니다. LinearLayout을 상속 받았기 때문에 그냥 똑같이 쓸수 있죠. 패키지랑 이름만 쓰면요.
혹시 오류가 나면 다음 생성자를 추가시켜 주세요.
public CheckableLinearLayout(Context context) {
super(context);
}
public CheckableLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}


