안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
ListView에 3개의 리스트가 있습니다..(거기에 CheckBox추가 상태)
선택된 체크리스트를 Text로 저장하게끔 되어있습니다.
Total 갯수와 함께...
관련소스
//ListView에서 사용하는 listener
AdapterView.OnItemClickListener lvSelectedItemListener = new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectedItem.add(list.get(position));
//selectedItem에 입력이 되고 있는지 Test
num = selectedItem.size();
showMsg("입력된 갯수는 : "+num);
}
};
AdapterView.OnItemClickListener lvSelectedItemListener = new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectedItem.add(list.get(position));
//selectedItem에 입력이 되고 있는지 Test
num = selectedItem.size();
showMsg("입력된 갯수는 : "+num);
}
};
여기서 현재 문제가 되고 있는 부분은...
1번줄 체크 --> selectedItem에 1번줄 내용 저장(저장될 Text내용) , 토탈 갯수 num=1
2번줄 체크 --> selectedItem에 1번줄 + 2번줄 내용 저장, 토탈 갯수 num=2
1번줄 체크해제 --> selectedItem에 1번줄 + 2번줄 + 1번줄 내용저장, 토탈 갯수 num=3
이런식으로 되고 있씁니다...
다시 체크해제를 할경우 기존에 체크되어있는건 해제가 되어야하는데,
그대로 모두 저장이 되고 있습니다. 토탈 갯수와 같이요..;;;;
체크=true
un체크=false
이런식으로 체크된 항목만 저장할 수 있는 방법은 없을까요??
아니면, remove를 줘서 선택햇던걸 다시 선택했을때,
목록을 지울수 있게 조건문을 줄 수있지않을까여???
관련 사항을 해보신분 계시면 팁좀 부탁드립니다...!
2011.03.21 15:35:58
selecteditem 이라는건 ArrayList 인가 보네요...만약에 ArrayList 를 사용중이시라면 ListView 의 메소드 중에
setChoiceMode(ListView.CHOICE_MODE_MULTIPLE) 라고 있습니다. 각 아이템을 선택 시 해당 아이템이 선택 되었는지 확인 할 수 있죠
확인은 ListView 의 메소드 중에 isItemChecked 를 통해 가능하구요...
위의 방법을 계속 사용하신다면 해당 ArrayList 에서 선택 된 아이템에 해당되는 id 나 value 를 통해 값이 있는지 확인 후 지워주셔야 하능할 것으로 보입니다.



