본문 바로가기
프로그래밍/DB/JAVA/안드로이드/GAE

[안드로이드] 커스텀뷰를 위해 커스텀아답터를 만들때 주의 사항

by 아유카와 2011. 5. 4.

class PopUpAdapter extends BaseAdapter {
 Context maincon;
 LayoutInflater lnflater;
 ArrayList<PopUpData> al;
 int layout;
 
 public PopUpAdapter(Context maincon, int layout, ArrayList<PopUpData> al) {
  super();
  this.maincon = maincon;
  this.layout = layout;
  this.al = al;
  lnflater = (LayoutInflater)maincon.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 } 

 @Override
 public int getCount() {
  // TODO Auto-generated method stub
  return al.size();
 }

 @Override
 public Object getItem(int arg0) {
  // TODO Auto-generated method stub
  return al.get(arg0);
 }

 @Override
 public long getItemId(int arg0) {
  // TODO Auto-generated method stub
  return arg0;
 }
 


 
 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  // TODO Auto-generated method stub
  // 계속적인 생성을 막기 위해 전 view를 가지고 있는 convertView가 null이 아니라면 전의 view를 그대로 사용
  if(convertView == null) {
   convertView = lnflater.inflate(layout, parent, false);
  }
  
  TextView date = (TextView)convertView.findViewById(R.id.date);
  date.setText(al.get(position).date);
  
  TextView itemKind = (TextView)convertView.findViewById(R.id.itemKind);
  itemKind.setText(al.get(position).itemKind);  
  
  TextView itemCnt = (TextView)convertView.findViewById(R.id.itemCnt);
  itemCnt.setText(al.get(position).itemCnt);

  return convertView;  
 }
 
}


위 코드에서

@Override
public int getCount() {
// TODO Auto-generated method stub
return al.size();
}

@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return al.get(arg0);
}

@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}

의 리턴값들이 정의 되지 않으면 리스트가 나오지 않는다. 난 역시 초보 ㅠㅠ...