public View getView(int position, View convertView, ViewGroup parent) {
  // TODO Auto-generated method stub
  Log.i("test33", "getview call : " + g);
  g++;

  day = mDayList.get(position);
  DayViewHolde dayViewHolder;
  
  if (convertView == null) {
   Log.i("test33", "convertView null");
   convertView = mLiInflater.inflate(mResource, null);
    convertView.setLayoutParams(params);   
   
   //뷰홀더 고정
   dayViewHolder = new DayViewHolde();
   dayViewHolder.calender_rel = (RelativeLayout)convertView.findViewById(R.id.calender_rel);
   dayViewHolder.calender_rel_sel = (RelativeLayout)convertView.findViewById(R.id.calender_rel_sel);
   dayViewHolder.calender_rel_startbox = (RelativeLayout)convertView.findViewById(R.id.calender_rel_startbox);
   dayViewHolder.calender_rel_finishbox = (RelativeLayout)convertView.findViewById(R.id.calender_rel_finishbox);
   dayViewHolder.calender_rel_finishbox_botton = (RelativeLayout)convertView.findViewById(R.id.calender_rel_finishbox_botton);
   dayViewHolder.calender_photo = (ImageView)convertView.findViewById(R.id.calender_photo);
   dayViewHolder.cal_halfcircle = (ImageView)convertView.findViewById(R.id.cal_halfcircle);
   dayViewHolder.calender_days = (TextView)convertView.findViewById(R.id.calender_days);
   dayViewHolder.calender_finish_count = (TextView)convertView.findViewById(R.id.calender_finish_count);
   dayViewHolder.calender_finish_count_botton = (TextView)convertView.findViewById(R.id.calender_finish_count_botton);
   dayViewHolder.calender_start_count = (TextView)convertView.findViewById(R.id.calender_start_count);
   
   convertView.setTag(dayViewHolder);
   
  } else {
   Log.i("test33", "convertView not null");
   dayViewHolder = (DayViewHolde)convertView.getTag();
  } 
return convertView;


달력을 만들면서 위와 같이 뷰홀더를 적용중입니다.

문제는 없다!... 라고 안심하다가 속도가 워낙 느려서 로그를 찍어보니

겟뷰의 호출횟수 1번에서는 컨버트뷰가 널, 뷰를 파인드하고

2회에서는 컨버트뷰가 널이 아니니까 바로 겟테그를 해서 사용하더군요.

 

그런데 왜 3회째 루프에서 컨버트뷰가 널이되면서 마지막까지 파인드를 하는걸까요!!

 

제가 뷰홀더를 잘못써도 한참 잘못쓴것 같은데... 답변 바랍니다.