自定义一个class 集成 BaseAdapter
会强制重写几个方法 其中2个最重要
一个是 getcount 这个方法返回一个int 目的是让listview知道总共有几个item 有几个item getView就会调用几次
另一个是 getview 这个方法就是需要把你要的xml装进去 并且在里面做一些赋值的逻辑 上面提到的getcount 返回几个这个方法就调用几次并且每一次调用 里面的position参数会加1也就是说
position为0是第一个item 为1是第二个item以此类推
下面我贴一下我的一段代码供你参考
private class MyAdapter extends BaseAdapter{
private Listdata;
public MyAdapter(Listdata){
this.data = data;
notifyDataSetChanged();
}
public void setData(Listdata){
this.data = data;
notifyDataSetChanged();
}
@Override
public int getCount() {
if (data != null)
return data.size();
return 0;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Holder holder;
if (convertView == null){//这里是为了优化listview的性能
convertView = LayoutInflater.from(mActivity).inflate(R.layout.item_pic,null);//这一句就是把 xml装到listview里
holder = new Holder();
holder.imageView = (ImageView) convertView.findViewById(R.id.img);//这一句是获取xml里面的控件
convertView.setTag(holder);
}else{
holder = (Holder) convertView.getTag();
}
ImageLoader.getInstance().displayImage(data.get(position),holder.imageView,options);//这一句就是给imageview控件下载图片并显示
return convertView;
}
}
public class Holder{
public ImageView imageView;
}