android AbsListView之ListView使用(2)-BaseAdapter

来源:互联网 发布:淘宝达人简介怎么写 编辑:程序博客网 时间:2024/05/17 01:39

上一遍已经讲解了List的SimpleAdapter的使用,本次主要讲解BaseAdapter的使用,故不再给出MainActivity的代码

(其实我个人认为,作为初学者,要多学会自己思考和写代码,不能只看别人代码和抄别人代码,代码是死的,重要的是要在学习过程中培养自己的编程思想,学会思考和解决问题)


import java.text.DecimalFormat;import java.util.List;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.lb.shop.activity.R;import com.lb.shop.commom.MoneyHelper;import com.lb.shop.model.Tuan;public class LikeAdapter extends BaseAdapter {     private Context context;  //上下文对象     private List<Tuan> list; //集合对象     private ViewHolder holder; //静态类、用于保存组件     public LikeAdapter(Context context, List<Tuan> list) {          this.context = context;          this.list = list;     }       //返回数组的长度     @Override     public int getCount() {          // TODO Auto-generated method stub          return list.size();     }   //获取列表项     @Override     public Object getItem(int position) {          // TODO Auto-generated method stub          return list.get(position);     } //获取列表ID     @Override     public long getItemId(int position) {          // TODO Auto-generated method stub          return position;     }     @Override     public View getView(int position, View convertView, ViewGroup parent) {          if (convertView == null) {               convertView = LayoutInflater.from(context).inflate(                         R.layout.groupbuy_list, null);               holder = new ViewHolder();               holder.img = (ImageView) convertView.findViewById(R.id.like_img);               holder.brand_name = (TextView) convertView                         .findViewById(R.id.like_brand_name);               holder.short_title = (TextView) convertView                         .findViewById(R.id.like_short_title);               holder.groupon_price = (TextView) convertView                         .findViewById(R.id.like_groupon_price);               holder.market_price = (TextView) convertView                         .findViewById(R.id.like_market_price);               holder.sale_count = (TextView) convertView                         .findViewById(R.id.like_sale_count);               convertView.setTag(holder);// 暂存组件          } else {               // 找回组件               holder = (ViewHolder) convertView.getTag();          }          Tuan tuan = list.get(position);          holder.brand_name.setText(tuan.getBrand_name());          holder.short_title.setText(tuan.getShort_title());          holder.groupon_price.setText(String.format("¥%s", MoneyHelper.formatMoney(tuan.getGroupon_price())));          holder.market_price.setText(MoneyHelper.formatMoney(tuan.getMarket_price()));          holder.sale_count.setText(String.format("已售%s", tuan.getSale_count()));          holder.img.setImageBitmap(tuan.getImage());          return convertView;     }     /****     * 通过convertView+ViewHolder来实现,ViewHolder就是一个静态类,使用 ViewHolder     * 的关键好处是缓存了显示数据的视图(View),加快了 UI 的响应速度。     * */     static class ViewHolder {          ImageView img;          TextView brand_name;          TextView short_title;          TextView groupon_price;          TextView market_price;          TextView sale_count;     }}


0 0
原创粉丝点击