android AbsListView之ListView使用(2)-BaseAdapter

上一遍已经讲解了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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值