안녕하세요

안드로이드 젤리빈 이전 버전에서는

저기 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);

// }

// }

}

}