안녕하세요
안드로이드 젤리빈 이전 버전에서는
저기 statusCheckBtn.isChecked(); 요게 처음에 false로 시작되는데
젤리빈업데이트이후 체크박스 클릭하자마자 onItemClick 여기 타면서
statusCheckBtn.isChecked(); 요게 true로 반환이 됩니다.
그래서 현재 이렇게 임시방편으로 안드로이드 버전을 확인후 기존꺼랑 반대로 처리했는데요
말그대로 임시방편인지라. 완벽한 해결책을 찾는중인데요 어렵네요
도와주세요 ㅜㅜ
저기 밑에 주석처리한게 원 소스 입니다.
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (parent.getId() == R.id.list1) {
Object[] objects = (Object[]) parent.getItemAtPosition(position);
CheckBox statusCheckBtn = (CheckBox) view.findViewById(R.id.checkbox1);
boolean isChecked = statusCheckBtn.isChecked();
if(Build.VERSION.SDK_INT >= 16) isChecked = !isChecked; //chun ischecked() jellybean 에선 리턴값을 반대로 반환하여 강제로 맞게 바꿔줌
if (isChecked) {
if (itemMap.containsKey(objects.hashCode())) {
itemMap.remove(objects.hashCode());
}
} else {
if (!itemMap.containsKey(objects.hashCode())) {
itemMap.put(objects.hashCode(), null);
}
}
// if (statusCheckBtn.isChecked()) {
// if (itemMap.containsKey(objects.hashCode())) {
// itemMap.remove(objects.hashCode());
// }
// } else {
// if (!itemMap.containsKey(objects.hashCode())) {
// itemMap.put(objects.hashCode(), null);
// }
// }
}
}