您的位置:首页 > 移动开发 > Android开发

Android ViewHolder的作用与用法

2015-11-09 10:50 441 查看
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()
dbfe
+ “分”);

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: