Android ViewHolder的作用与用法

来源:互联网 发布:iface102考勤安装软件 编辑:程序博客网 时间:2024/06/05 11:20

Android ViewHolder的作用与用法
ViewHolder通常出现在适配器里,为的是listview滚动的时候快速设置值,而不必每次都重新创建很多对象,从而提升性能。
public final class ViewHolder {
private TextView tv_OrderNum;
private TextView tv_Status;
private TextView tv_Title;
private TextView tv_money;
private TextView tv_PayScore;
private TextView tv_PtimeName;
private TextView tv_Ptime;
private TextView tv_Type;
}

public View getView(final int arg0, View convertView, ViewGroup arg2) {
// TODO Auto-generated method stub
ViewHolder viewHolder = null;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(
R.layout.item_scoreexrecord, null);
viewHolder.tv_OrderNum = (TextView) convertView
.findViewById(R.id.tv_OrderNum);
viewHolder.tv_Status = (TextView) convertView
.findViewById(R.id.tv_Status);
viewHolder.tv_Title = (TextView) convertView
.findViewById(R.id.tv_Title);
viewHolder.tv_money = (TextView) convertView
.findViewById(R.id.tv_money);
viewHolder.tv_PayScore = (TextView) convertView
.findViewById(R.id.tv_PayScore);
viewHolder.tv_PtimeName = (TextView) convertView
.findViewById(R.id.tv_PtimeName);
viewHolder.tv_Ptime = (TextView) convertView
.findViewById(R.id.tv_Ptime);
viewHolder.tv_Type = (TextView) convertView
.findViewById(R.id.tv_Type);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.tv_OrderNum.setText(arrayList_ScoreExRecord.get(arg0)
.getOrderNum());
viewHolder.tv_Title.setText(arrayList_ScoreExRecord.get(arg0)
.getTitle());
double money = 0;
if (!CommonTools.isEmpty(arrayList_ScoreExRecord.get(arg0).getMoney())) {
money = CommonTools.string2double(arrayList_ScoreExRecord.get(arg0)
.getMoney());
}
viewHolder.tv_money
.setText(CommonTools.string2double2Unit(money) + “元”);
viewHolder.tv_PayScore.setText(arrayList_ScoreExRecord.get(arg0)
.getPayScore() + “分”);
viewHolder.tv_Ptime.setText(arrayList_ScoreExRecord.get(arg0)
.getPtime());
if (arrayList_ScoreExRecord.get(arg0).getType().equals(“1”)) {
viewHolder.tv_Type.setVisibility(View.VISIBLE);
viewHolder.tv_Type
.setBackgroundResource(R.drawable.app_96_btn_qx_norma);
}
if (arrayList_ScoreExRecord.get(arg0).getType().equals(“2”)) {
viewHolder.tv_Type.setVisibility(View.GONE);
viewHolder.tv_PtimeName.setText(“兑换日期:”);
}

    if (arrayList_ScoreExRecord.get(arg0).getStatus().equals("1")) {        viewHolder.tv_Status.setText("未使用");    }    if (arrayList_ScoreExRecord.get(arg0).getStatus().equals("2")) {        viewHolder.tv_Status.setText("已使用");    }    if (arrayList_ScoreExRecord.get(arg0).getStatus().equals("3")) {        viewHolder.tv_Status.setText("已失效");    }    if (arrayList_ScoreExRecord.get(arg0).getStatus().equals("4")) {        viewHolder.tv_Status.setText("已取消");    }    if (arrayList_ScoreExRecord.get(arg0).getStatus().equals("6")) {        viewHolder.tv_Status.setText("使用中");    }    viewHolder.tv_Type.setOnClickListener(new OnClickListener() {        @Override        public void onClick(View view) {            // TODO Auto-generated method stub            // requestCancelExchange(arrayList_ScoreExRecord.get(arg0));            quxiaoDialog(arg0);        }    });    return convertView;}
0 0
原创粉丝点击