android AbsListView之ListView使用(2)-BaseAdapter
2015-09-14 11:04
465 查看
上一遍已经讲解了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; } }
相关文章推荐
- android AbsListView之ListView使用(1)
- android-自定义Dialog
- Android底层的学习经验介绍
- Android 播放视频文件
- android ImageSwitcher
- Android基础控件ToggleButton→ Switch→ SeekBar→ProgressBar 控件
- android ViewSwticher
- phoneGap(cordova)插件开发学习
- Android之日期及时间选择对话框用法实例分析
- Android-RoundCornerProgressBar——Android圆角进度条(Progress Bar)类库
- Android学习文档之秘密发送短信
- Argument for @NotNull parameter 'name' of com/android/tools/idea/welcome/Platform.<init> must not be
- Android自定义ProgressBar
- [转]Android开发过程中遇到的问题
- Android系统自带样式(android:theme)解析
- Android RadioGroup 横向显示
- 使用android NDK r10e gdb 出现识别不了ABI的问题
- Android code-工具类库-GPS、百度、高德、国测局、腾讯等经纬度坐标转换
- android中点击空白处隐藏软键盘
- Android 如何使用GPU硬件加速