android listview 倒计时错乱,Android ListView 位置错乱问题

问题:

使用 class ViewHolder {

public TextViewitemName;

public ImageViewaddBt;

public ImageViewinfo;

publicTextView dateupinfoView;

publicTextView stateLabelView;

publicTextView dateLabel;

publicTextView stateLabel;

public RelativeLayout layoutRe;

}

来提高listview的滑动效率,会引发一些问题,比如位置错乱,提示信息错乱等;原因是内部实现异步加载引起的(欢迎高手指明);

解决方案:

1:使用view的setTag()方法来记录当前item的位置信息;

2:item展示具体值的时候,根据位置信息来取到对应的 model/bean/object,有很多种叫法,你懂的;

if(convertView ==null) {

viewHolder =newViewHolder();

convertView = View.inflate(context, R.layout.m3_activity_indicator_item,null);

viewHolder.addBt= (ImageView) convertView.findViewById(R.id.addBt);

viewHolder.itemName= (TextView) convertView.findViewById(R.id.itemName);

..... .....

convertView.setTag(viewHolder);

viewHolder.info.setTag(position);

viewHolder.addBt.setTag(position);

viewHolder.dateupinfoView.setTag(position);

viewHolder.stateLabelView.setTag(position);

}else{

viewHolder = (ViewHolder)convertView.getTag();

viewHolder.info.setTag(position);

viewHolder.addBt.setTag(position);

viewHolder.dateupinfoView.setTag(position);

viewHolder.stateLabelView.setTag(position);

}

//伪代码

int num=Integer.valueOf(viewHolder.dateupinfoView.getTag()+"");//获取到初始化item时的位置值

Bean item =list.get(num);  //list是传递过来的数据源,获取具体的item;

viewHolder.stateLabelView.setText(item.getString("key-Str"))//应该看的懂

这样就可以高效率加载缓存的item,而不会导致位置错乱!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值