优化ListView数据适配器套路

来源:互联网 发布:大专软件学校 编辑:程序博客网 时间:2024/05/17 04:47

优化ListView数据适配器套路

// 静态区中放的是控件static class ViewHolder {//不能抽取出一个类,成员内部类可以用static修饰    ImageView mIcon;    TextView mName;    TextView mNumber;}

if (convertView == null) {        convertView = View.inflate(context, R.layout.item_contact, null);        // 设置数据从静态区中拿        holder = new ViewHolder();        holder.mIcon = (ImageView) convertView                .findViewById(R.id.item_contact_iv_icon);        holder.mName = (TextView) convertView                .findViewById(R.id.item_contact_tv_name);        holder.mNumber = (TextView) convertView                .findViewById(R.id.item_contact_tv_number);        // 复用窗体为空时,打标记        convertView.setTag(holder);

} else {        // 复用窗体非空时,拿标记给帮助类        holder = (ViewHolder) convertView.getTag();    }

holder.mName.setText(contactBean.getName());holder.mNumber.setText(contactBean.getNumber());holder.mIcon.setImageBitmap(ContactProvider.getContactPhoto(context,            contactBean.getContactId()));

// 返回复用窗体return convertView;

没有优化的

 if (convertView == null) {     // 没有复用     convertView = View.inflate(ContactSelectActivity.this,     R.layout.item_contact, null);     }     ImageView ivIcon = (ImageView) convertView.findViewById(R.id.item_contact_iv_icon);     TextView tvName = (TextView) convertView.findViewById(R.id.item_contact_tv_name);     TextView tvNumber = (TextView) convertView.findViewById(R.id.item_contact_tv_number);     ContactBean bean = mDatas.get(position);     ivIcon.setImageBitmap(ContactProvider.getContactPhoto(     ContactSelectActivity.this, bean.contactId));     tvName.setText(bean.name);     tvNumber.setText(bean.number);     return convertView;}
0 0