check박스를 만들어서 해당열을 지우려고 합니다..

일단 check박스를 사용하기 위해서 getview()를 사용하려고 하는데요..

아래와 같은 소스코드를 만들어서 getview를 통해 뿌려주려고 하고 있습니다.

public class list extends ListActivity {
 public Context mCtx;
 DbAdpater Dbadpater= new DbAdpater(mCtx);
 int MAX=1000;

class ItemAdapter extends ArrayAdapter<Item> {
  
  public ArrayList<Item> items;
  public CheckBox cb;
  
  public ItemAdapter(Context context, int textViewResourceId, ArrayList<Item> items) {                
  super(context, textViewResourceId, items);                
  this.items = items;        
  }
       
  public View getView(int position, View convertView, ViewGroup parent) {
           View v = convertView;
           if(v == null){
            LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.listview, null);
           }
           Item i = items.get(position);
           if(i != null){
            TextView tv = (TextView)v.findViewById(R.id.song_item_layout);
            cb = (CheckBox)v.findViewById(R.id.check);
            if(tv != null){
             tv.setText(i.getName());
            }
           }
           return v;
        }
}
}

그런데 여기서 getview메소드를 따로 불러와서 형식에 맞게 리스트뷰에 뿌려지는 것이 맞나요??
클래스안에 클래스가 있는 형태인데, 다른 곳에서 객체생성을해 뿌려주려고 하고 있는데 어려움이 좀 있습니다;;
그리고 check된 목록을 지우기 위해서는 getview함수를 수정해야 할 것같은데..;;
어떻게 하면 좋을지..

전체적인 흐름을 알려주셨으면 감사하겠습니다..