public class ExamProgressAdapter extends BaseAdapter {


 private Context mContext;
 private LayoutInflater mInflater;
 ArrayList<ExamQuestionData> listExamQuestionDatas;
 private int mLayout;

 

 public ExamProgressAdapter(Context _context, int layout,
   ArrayList<ExamQuestionData> _listExamQuestionDatas) {
  super();
  this.mContext = _context;
  this.mLayout = layout;
  this.listExamQuestionDatas = _listExamQuestionDatas;
  this.mInflater = (LayoutInflater) _context
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 }

 

 @Override
 public int getCount() {
  return listExamQuestionDatas.size();
 }

 @Override
 public Object getItem(int arg0) {
  return listExamQuestionDatas.get(arg0);
 }

 @Override
 public long getItemId(int arg0) {
  return arg0;
 }

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {

  PersonViewHolder viewHolder;
  final int point = position;

  if (convertView == null) {
   // 캐시된 뷰가 없을 경우 새로 생성하고 뷰홀더를 생성한다
   convertView = mInflater.inflate(mLayout, parent, false);
   viewHolder = new PersonViewHolder();

   viewHolder.tvNumber = (TextView) convertView
     .findViewById(R.id_examprogress_item.tvNumber);

   convertView.setTag(viewHolder);
  } // 캐시된 뷰가 있을 경우 저장된 뷰홀더를 사용한다
  else {
   viewHolder = (PersonViewHolder) convertView.getTag();
  }

  viewHolder.tvNumber.setText(""
    + listExamQuestionDatas.get(point).number);

 

  return convertView;
 }

 public class PersonViewHolder {
  public TextView tvNumber;
 }
}

이런식으로 해놨는데 만약 데이터가 100개 일경우 올렷다 내렷다하면 체크박스 체크된게 자꾸 밑에도 찍히고 포지션 화면에 보이지는거만큼 자꾸 반복적으로 0 1 2 3 4 5 이정도만 반복되는데 각각 체크박스 정보는 어떻게 기억해야하죠? ㅠㅠ