마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

BaseAdapter getView에 position 이 0으로 찍힙니다.

0 추천

getCount() 에서는 6으로 나오는데 position 을 찍어보면

0

0

0

0

0

이렇게 나옵니다. ㅠㅠ

6개의 리스트가 나와야 하는데 첫번 row 밖에 ;;;;

이런적은 첨이라 머가 잘못됐는지 눈에 안보이네요..

아래는 해당 소스입니다. 똑바로 쓴게 맞는거 같은데 한번 검토해주시길 부탁드립니다.

public class PlanBaseAdapter extends BaseAdapter {
 private Context mContext;
 private ArrayList<PlanListData> arrData;
 private LayoutInflater inflater;
 private int resId;
 
 public PlanBaseAdapter(Context context, int resId, ArrayList<PlanListData> arrData){
  this.mContext = context;
  this.arrData = arrData;
  this.resId = resId;
  this.inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 }

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

 @Override
 public Object getItem(int position) {
  return null;   // return arrData.get(position); 로 리턴해도 0으로 나옵니다 ㅠ
 }

 @Override
 public long getItemId(int position) {
  return 0;   // return position; 로 리턴해도 0으로 나옵니다.
 }

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  Log.v("aaa", "position : "+position);
  
  ViewHolder viewHolder = new ViewHolder();
    
     // 캐시된 뷰가 없을 경우 새로 생성하고 뷰홀더를 생성한다
     if(convertView == null)
     {
      convertView = inflater.inflate(resId, null);
      
      viewHolder.tv_contents = (TextView) convertView.findViewById(R.id.tv_item_contents);
    
   
         convertView.setTag(viewHolder);
     }
     // 캐시된 뷰가 있을 경우 저장된 뷰홀더를 사용한다
     else
     {
         viewHolder = (ViewHolder) convertView.getTag();
     }
   
     viewHolder.tv_contents.setText(arrData.get(position).iName);
   
     return convertView;
 }
 
 
 
 /* ViewHolder     
  * getView의 속도 향상을 위해 쓴다.   
  * 한번의 findViewByID 로 재사용 하기 위해 viewHolder를 사용 한다.   
  */   
 class ViewHolder{       
  public TextView tv_contents;       
      
 }
 
}

익명사용자 님이 2013년 10월 7일 질문
2013년 10월 7일 수정

1개의 답변

0 추천
@Override
 public Object getItem(int position) {
  return null;
 }

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

 

올바른 값을 리턴하게 수정하세요.
익명사용자 님이 2013년 10월 7일 답변
...