커스텀 어댑터로 리스트뷰를 수정해서 쓸려고 하는데요..

체크버튼 - 이름/전화번호 - 아이콘  이렇게 4부분으로 나눴습니다

그런데.. 체크를 한뒤에 아래로 스크롤 했다가 다시 위로 올리면 체크했던 부분이 자꾸 사라집니다;;

체크한 위치를 따로 저장하면 될꺼라는 글을 보고

isCheck라는 변수에 위치(position)를 저장해서 실험해도 마찬가지로 체크가 풀려버리네요
(체크는 풀려있지만 삭제 버튼을 누르면 체크했던 항목이 삭제는 됩니다) 

// 리스트뷰 내용 어댑터로 등록

02         customListAdapter = new CustomListAdapter(this, R.layout.listsituation, arraylist);
03   
04         listview1 = (ListView) findViewById(R.id.listview1);
05         listview1.setAdapter(customListAdapter);
06   
07         // 휴지통 버튼 클릭시 체크된 항목 삭제
08         ImageButton wastebasket_btn = (ImageButton) findViewById(R.id.wastebasket_btn);
09         wastebasket_btn.setOnClickListener(new View.OnClickListener() {
10             public void onClick(View v) {
11                 for(int i = 0; i < isCheck.size(); i++) {
12 >
13                     if((isCheck.get(i)).equals(true)) {
14                         arraylist.remove(i);
15                         isCheck.remove(i);
16                     
17                 }
18                 customListAdapter.notifyDataSetChanged();
19             }
20         });
21     }
22       
23     class CustomListAdapter extends ArrayAdapter {
24   
25         ....
26           
27         public View getView(final int position, View convertView, ViewGroup parent) {
28   
29             if(convertView == null) {
30                 Inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
31                 convertView = Inflater.inflate(R.layout.listsituation, null);
32             }
33   
34             if(ls != null) {
35                 CheckBox btn = (CheckBox) convertView.findViewById(R.id.check_btn);
36                 btn.setFocusable(false);
37                 btn.setClickable(false);
38                   
39                 if(btn != null) {
40                     btn.setChecked(false);
41                     CheckBox btn1 = (CheckBox) convertView.findViewById(R.id.check_btn);
42                       
43                     btn1.setChecked(Boolean.getBoolean(String.valueOf(isCheck.get(position))));
44                       
45                     btn1.setOnClickListener(new OnClickListener() {
46                         public void onClick(View v) {
47                             if((Boolean) isCheck.get(position)) {
48                                 isCheck.remove(position);
49                                 isCheck.add(position, false);
50                             } else {
51                                 isCheck.remove(position);
52                                 isCheck.add(position, true);
53                             }
54                         }
55                     });
56                     btn.setChecked(Boolean.getBoolean(String.valueOf(isCheck.get(position))));
57                 }
58                   
59                 .....
60                   
61             }
62             return convertView;
63         }

이렇게 저렇게 해보고는 있는데 도저히 모르겠습니다

그리고 여러항목을 체크한 뒤에 삭제 버튼을 누르면 전부다 지워지지 않고 반만 지워집니다 ㅜㅜ

답변 좀 부탁드리겠습니다~