ListView中数据刷新,比如某一项有3个按钮,按一下则切换数据源,这样就要刷新,如果调用notifyDataSetChanged()则会将页面展示的几个Item都进行刷新。现在这种方法则是局部刷新。

比如列表中的数据对象是User。

public class User {private String userId;/*** 名字*/private String userName;/*** 用户类型     */private boolean isTemp;/*** @return the userId*/public String getUserId() {return userId;}/*** @param userId the userId to set*/public void setUserId(String userId) {this.userId = userId;}/*** @return the userName*/public String getUserName() {return userName;}/*** @param userName the userName to set*/public void setUserName(String userName) {this.userName = userName;}
}

那么BaseAdapter中的getItem()方法是这样:

 @Overridepublic Object getItem(int position) {return userList.get(position);}

然后局部刷新的方法可以为:

<pre name="code" class="java"> private void updateItem(ListView listView, String id) {if (listView != null) {int start = listView.getFirstVisiblePosition();int end = listView.getLastVisiblePosition();int headCount = listView.getHeaderViewsCount();for (int i = start, j = end; i <= j; i++) {User user = (User) listView.getItemAtPosition(i + headCount);if (user != null && id.equals(user.getUserId())) {View view = listView.getChildAt(i - start + headCount);getView(i, view, listView);break;}}}}

Adapter局部刷新相关推荐

  1. RecyclerView 配合 DiffUtil,RecyclerView局部刷新

    一个问题: 每次从服务器取到数据后,都是调用adapter.notifyDataSetChanged();进行刷新.那局部刷新(adapter.notifyItemChanged();)的这些东西不是 ...

  2. android ListView 局部刷新

    今天,简单讲讲android如何对ListView 进行局部刷新. 之前,自己做的ListView 发现刷新频率太高了,而且很多界面上看不到的数据改变时调用Adapter.notifyDataSetC ...

  3. android:ListView的局部刷新

    1.简介 对于android中的ListView刷新机制,大多数的程序员都是很熟悉的,修改或者添加adapter中的数据源之后,然后调用notifyDataSetChanged()刷新ListView ...

  4. Android ListView优化之局部刷新(更新)(非notifyDataSetChanged)

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53020164 [DylanAndroid的csdn博客] 在Android开发 ...

  5. ListView实现item局部刷新

    原理就是获得需要刷新的item,然后重新设置item中控件的数据,其他item不变. 之所以需要用到局部刷新是因为在做项目的时候,发现在需要listview的个别item时,如果调用Adapter的n ...

  6. android局部布局刷新,Android RecyclerView 局部刷新分析

    前情回顾 之前写的 PowerAdapter 和 SelectPowerAdapter 从创建到现在,已经两年多,期间发生了翻天覆地的变化.一开始,我把 SwipeRefreshLayout 和 Re ...

  7. RecyclerView局部刷新和原理介绍

    RecyclerView局部刷新和原理介绍 一.引言 二.局部刷新的正确使用姿势 三.局部刷新的原理 3.0 前提 3.1 RecyclerView与Adapter建立观察者模式 3.2 onItem ...

  8. RecyclerView局部刷新

    在RecyclerView中,我们时常会用到局部刷新,我们大多数是使用:notifyItemChanged. 我在使用这个局部刷新过程中突然发现我有几个notifyItemChanged没有效果,我就 ...

  9. ListView 局部刷新

    概述 在使用ListView的时候,我们都会对列表数据进行更新,当数据变化时,我们会调用adapter的notifyDataSetChange方法去刷新列表.但是,该刷新方法是使整个列表都更新一遍(调 ...

最新文章

  1. android中解压文件
  2. struct 与class 的区别?
  3. MySQL管理一些基础SQL语句
  4. Linux学习之六-Yum命令的使用
  5. CLR 完全介绍-反射之反思
  6. MyEclipse运行时自动保存
  7. Miniprofiler在普通net项目中的使用
  8. C++创建对象:栈和堆的区别
  9. java 调用python_Java平台如何调用Python平台?
  10. @Repository详解
  11. 日记背景 android,只是意外 - 用这些 APP 来记录生活,再也不用担心无法坚持写日记 - Android 应用 - 【最美应用】...
  12. c语言 整数转二进制取位,C语言位运算--将整数转换成二进制串以及反转整数后N位...
  13. Linux学习总结(39)——系统管理员应该知道的 20 条 Linux 命令
  14. java输入学生名字输出_用java实现:输入学生个数,并输入每个学生的名字还有分数,结果输出分数最高和分数第二高的学生......
  15. 从零开始学JSON(修订版)
  16. opencv 判断点在多边形内外
  17. QT+opencv学习笔记(5)——霍夫直线检测、圆检测及椭圆检测
  18. csdn WLW 文件验证
  19. 配置sumlime html,Sublime Text 3使用SublimeLinter配置JS,CSS,HTML语法检查
  20. 发挥强大资源优势,移动云助推高校人才培养

热门文章

  1. android平板Play商品,谷歌Play商店中的手机与平板参数比较
  2. 【SI好文翻译】铜箔表面纹理对损耗的影响:一个有效的模型(三)
  3. c语言 愚人节的礼物,愚人节的礼物 hdu1870
  4. FL Stuido21中文版水果编曲软件下载
  5. 数字图像处理个人练习04--图像复原
  6. 安卓自定义View——网易颜色渐变效果指示器
  7. 设备树 之pinctrl
  8. 关于在VUE中使用sass loader报错的问题
  9. 最容易理解的Android6.0动态权限申请教程
  10. Collectors.reducing总结Collectors.mapping+Collectors.reducing+TreeSet等等