안드로이드 개발 질문/답변
(글 수 45,052)
안녕하십니까
커스텀 어뎁터 레이아웃에 체크 박스와 텍스트 3줄 을 하나의 인덱스에 작성하고자 하는데요..
체크박스 하나 선택 했을 때, 아래 내려가보면 다른 놈도 하나 선택 되어 있네요..
아직 리스너나 아무것도 등록 해 준것 없구요..
텍스트는 정상적으로 나오는데 체크박스만 이렇네요..
보니까 간격이 현재 보이는 사이즈 만큼 벌어져 있는데요..
어케하면 해결 할 수 있을까요?
커스텀 어뎁터 레이아웃에 체크 박스와 텍스트 3줄 을 하나의 인덱스에 작성하고자 하는데요..
체크박스 하나 선택 했을 때, 아래 내려가보면 다른 놈도 하나 선택 되어 있네요..
아직 리스너나 아무것도 등록 해 준것 없구요..
텍스트는 정상적으로 나오는데 체크박스만 이렇네요..
보니까 간격이 현재 보이는 사이즈 만큼 벌어져 있는데요..
어케하면 해결 할 수 있을까요?
2011.04.13 15:50:39
아답터 안에서의 position 값은 포커스에 따라 가변적으로 바뀌게 됩니다.
ListView 의 아이템에 CheckBox 의 경우 포커스에 따라 체크되는 아이템의 position 이 바뀌는 문제를 저도 겪었었습니다만...
ArrayAdapter 를 사용중이시라면 ListView 의 api 중에 setChoiceMode 라고 있습니다. 파라미터로 ListView. 해보시면 여러가지 나옵니다.
CheckBox 는 ListView.CHOICE_MODE_MULTIPLE 을 넣어주면 되더라구요...이렇게 하면 ListView 의 아이템이 체크박스 처럼 체크가
되었는지 확인할 수 있습니다. ListView.isItemChecked(position) 으로요...for 문 안에서 확인하시면 될 듯 하네요...
Adapter 안에서도 위에 메서드를 이용하여 CheckBox 의 SetChecked 값을 주면 될 듯 하네요...
ListView 객체 생성 시 mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
Adapter 안에서는 check.setChecked(mListView.isItemChecked(position));
확인 시 if(mListView.isItemChecked(i) == true)



