package cn.itcast.adapter; import java.util.List; import cn.itcast.db.R; import cn.itcast.domain.Person; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; public class PersonAdapter extends BaseAdapter { private List<Person> persons;//�ڰ󶨵����� private int resource;//�󶨵���Ŀ���� private LayoutInflater inflater; public PersonAdapter(Context context, List<Person> persons, int resource) { this.persons = persons; this.resource = resource; //LayoutInflater�������������android���÷���������ʹ��XML�ļ�ת����һ�����ֶ��� inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { return persons.size();//�������� } @Override public Object getItem(int position) { return persons.get(position);//�õ���ӦId������ } @Override public long getItemId(int position) { return position;//�õ���ĿId } @Override public View getView(int position, View convertView, ViewGroup parent) { //ȡ����Ŀ���� TextView nameView = null; TextView phoneView = null; TextView amountView = null; if(convertView==null){ //��ȡ��XMLת�������IJ��ֶ��� convertView = inflater.inflate(resource, null);//������Ŀ������� //��ȡ��XMLת�������IJ��ֶ�����ڲ��ؼ� nameView = (TextView) convertView.findViewById(R.id.name); phoneView = (TextView) convertView.findViewById(R.id.phone); amountView = (TextView) convertView.findViewById(R.id.amount); //���Ѿ�new�õĵ�View����ڻ����У���Ҫ�Լ������ڲ��ࣩ ViewCache cache = new ViewCache(); cache.nameView = nameView; cache.phoneView = phoneView; cache.amountView = amountView; convertView.setTag(cache); }else{ //�ӻ����еõ��ϴ��Ѿ�new����View���� ViewCache cache = (ViewCache) convertView.getTag(); nameView = cache.nameView; phoneView = cache.phoneView; amountView = cache.amountView; } Person person = persons.get(position); //�������ʵ�����ݰ� nameView.setText(person.getName()); phoneView.setText(person.getPhone()); amountView.setText(person.getAmount().toString()); return convertView; } //�����ڲ��� private final class ViewCache{ //ʹ��publicֱ�Ӹ��丳ֵ��Ϊ�˼�С���ص���������ļ��Ĵ�С���ʲ�ʹ��get,set�������� public TextView nameView; public TextView phoneView; public TextView amountView; } }