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

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

2015-01-23 16:19 330 查看
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));//重新设值
 }


供各位参考。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: