使用自定的Adapter显示数据

来源:互联网 发布:书同文数据库免费入口 编辑:程序博客网 时间:2024/06/05 08:30
package com.easaa.adapter;


import java.util.ArrayList;


import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;


import com.easaa.Ibean.ProductListBean;
import com.easaa.image.AsyncImageLoader;
import com.easaa.image.AsyncImageLoader.ImageCallback;
import com.easaa.s00000002.R;


public class Product_Adapter extends BaseAdapter{

private ArrayList<ProductListBean> product_list;//封装一个Bean放在List中
private LayoutInflater inflater;//声明一个布局提取器
private AsyncImageLoader imageLoader = new AsyncImageLoader();//实例化缓存对象
private ListView listview;

public Product_Adapter(Context context,ArrayList<ProductListBean> product_list,ListView listview){
super();
this.product_list = product_list;
this.listview = listview;
inflater = LayoutInflater.from(context);

}
//定义一个方法,将Bean里的数据放在List中
public void addData(ProductListBean product_list_result){
product_list.add(product_list_result);
// this.notifyDataSetChanged();
}


public int getCount() {
return product_list.size();
}


public Object getItem(int arg0) {
return arg0;
}


public long getItemId(int arg0) {
return arg0;
}


public View getView(int arg0, View convertView, ViewGroup arg2) {
ViewHolder viewHolder = null;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = inflater.inflate(R.layout.list_item_myfavorite, null);
viewHolder.imageView = (ImageView)convertView.findViewById(R.id.picture);
viewHolder.title = (TextView)convertView.findViewById(R.id.title);
viewHolder.price = (TextView)convertView.findViewById(R.id.price);

convertView.setTag(viewHolder);
}else {
viewHolder = (ViewHolder)convertView.getTag();
}
String imageTrueUrl = product_list.get(arg0).getPic();
// int i = imageTrueUrl.lastIndexOf("/");
// imageTrueUrl = imageTrueUrl.substring(0, i)+"/s-150-150-"+imageTrueUrl.substring(i+1);
viewHolder.imageView.setTag(imageTrueUrl);
Drawable cachedImage = imageLoader.loadDrawable(imageTrueUrl,
new ImageCallback() {


public void imageLoaded(Drawable imageDrawable,
String imageUrl) {
// TODO Auto-generated method stub
ImageView imageViewByTag = (ImageView) listview.findViewWithTag(imageUrl);
if (imageViewByTag != null) {
imageViewByTag.setImageDrawable(imageDrawable);
}
}
});
viewHolder.imageView.setImageDrawable(cachedImage);
viewHolder.title.setText(product_list.get(arg0).getName());
viewHolder.price.setText(product_list.get(arg0).getVipprice()+"");

return convertView;
}


private class ViewHolder{

ImageView imageView;
TextView title;
TextView price;

}


}


继承BaseAdapter,实现里的方法,重点是getView()方法。实现此方法的步骤:

1.要判断viewHolder 是否为空。

2.提取布局,

3.convertView.setTag(viewHolder);绑定数据



原创粉丝点击