Android ViewHolder的作用与用法

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
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时代新人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值