【Android 一般进阶】ListView刷新指定item

ListView 的notifyDataSetChange(),相信很多人都用过,当item需要体现变化时,可通过该方法进行刷新。notifyDataSetChange()是刷新所有可视的item,如果只是想刷新某一个item,那么这显然不合适。因为当可视的item比较多,而且如果涉及到bitmap,全部统一都要刷新,这就会有点耗时,而且刷新bitmap时会出现闪屏,用户体验不好。

刷新指定item,主要用到ListView的getChildAt(int position)方法,该方法是获取ListView众多可视的item中位置处于position的view。例如:getChildAt(1),获取可视的第一个item,这个item的index有可能是1(当 FirstVisiblePosition=0时),也有可能是2(FirstVisiblePosition=1,因为index=0的那个item已被移出屏幕了)。

了解了这个方法以后,我们看下核心代码(该方法主要实现item值加1.):

 public void updateItem(int itemIndex) {
  int oldContent=Integer.parseInt(dataList.get(itemIndex)); //获取itemIndex的值
  dataList.remove(itemIndex);//移除指定项目
  int newContent = oldContent + 1; //新值为旧值加1
  dataList.add(itemIndex, newContent + "");//添加到指定位置
 /**以上主要实现dataList指定item值加1**/

 View mView = lv.getChildAt(itemIndex-lv.getFirstVisiblePosition());//获取指定itemIndex在屏幕中的view
 ViewHolder mViewHolder = (ViewHolder) mView.getTag();
 mViewHolder.tv.setText(dataList.get(itemIndex));//重新设值
 }

供各位参考。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值