안드로이드 개발 질문/답변
(글 수 45,052)
convertView를 이용해서
체크 박스를 리스트로 뿌려주고있는데요
체크하고 스크롤을 내리고 올리면 체크 값들이 변합니다
CheckBox check = ((CheckBox)v.findViewById(R.id.CheckBox01));
check.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
}
});
여기서 다 체크값들의 포지션이 있는것을 각각 저장을 해야하나요??
아니면.. 저 소스에서 간단하게 구현 하는 방법이 있나요ㅠㅠ 찾아도 잘안나와서
여줘봅니다 .. 관련된 예제나.. 블로그나 ㅠㅠ 아무거나 좋아요 ㅠㅠ 공부해보게 ㅠㅠ
제발 좀 도와주세요..
2011.01.13 23:33:11
혹시 listView에 Adapter를 적용하신다면 getView메소드가 쓰이는 이유에 대해 알아보시면 현재 일어나는 이해할 수 없는? 현상에 대한 이해에 도움이 되리라 생각합니다. 제가 이해한 바로는 화면에 보여주는 데이터는 단지 10개 혹은 20개뿐인데, 이를 위해 모든 데이터를 메모리상에 적재해놓는것은 불필요한 일, 혹은 매우 소모적인 일이기 때문에, 화면에 보여지는 부분만 캐치하여 뿌려주자! 그래서 getView라는 메소드를 쓰자.라고 되어있는것 같습니다. 고럼. getView라는 놈은 뭐냐. 화면에 나올때만 데이터를 읽어와서 뿌려주기때문에 고넘이 어떤 놈인지 어디서 튀어나온놈인지 제가 알길이 없기 때문에(어댑터에 적용해놓은 값만을 기억합니다 getview는..) 각 position의 item마다의 고유값을 구현자께서 미리 신경써주셔야 되는게 옳은 방식이라고 이해하고 있습니다. 고로 check box에 관한 변수 하나 미리 설정해놓으시면 만사 ok가 된다고 생각합니다............ 물론 제가 잘못 알고 있는 점 지적해주시길 부탁하고 고수님들의 좋은 의견, 지도 편달 부탁합니다.!
저같은 경우는 위와 같은 현상이 발생해서 체크한 것들을 따로 변수(ArrayList<체크된 녀석 포지션>)에 저장해서 bindView같은 곳에서 매번 다시 해주고 있습니다.
개인적인 생각으로는 UI가 업데이트되는 동안에 체크되어 있는 값이 변경되면서(다른 포지션에 있는 값이 적용) UI에 적용이 제대로 않되는거 같더라구요..