我们都知道adapter.notifyDataSetChanged()方法可以通知adapter进行界面刷新,此方法是将界面中的数据全部刷新一遍,虽然listview自身做了缓存,并且我们复用了convertView,但是当前界面的item布局还是会全部刷新,如果我们只是改变item的一个属性,比如点赞就要全部刷新数据,有点小题大做了。所以实现局部刷新是很有必要的。使用如下:
第一步。我们获取要刷新的item数据源和需要刷新item的索引:

listview.setOnItemClickListener(newAdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {//数据源内容同步更新Useruser(User)parent.getItemAtPosition(position);user.setName("iam change");//更新被点击控件内容,代替调用adapter.notifyDataSetChanged();方法updateName(user.getName, position);}});

第二步。单独刷新需要更新的view:

private void updateName(String name, int position) {int firstVisiblePosition = listview.getFirstVisiblePosition();int lastVisiblePosition = listview.getLastVisiblePosition();//在看见范围内才更新进度条if (position >= firstVisiblePosition && position <= lastVisiblePosition) {//获取指定位置view对象View view = listview.getChildAt(position - firstVisiblePosition);if (view.getTag() instanceof TestListViewAdapter.ViewHolder) {//获取指定view对应的ViewHolderTestListViewAdapter.ViewHolder viewHolder = (TestListViewAdapter.ViewHolder) view.getTag();viewHolder.name.setText(name);}}}

很简单的就实现了。
另一种方法 , 项目很老 , 没有采用viewholder

private void updateName(String num, int position) {int firstVisiblePosition = mListView.getFirstVisiblePosition();int lastVisiblePosition = mListView.getLastVisiblePosition();//在看见范围内才更新进度条if (position > firstVisiblePosition && position <= lastVisiblePosition) {//获取指定位置view对象View view = mListView.getChildAt(position - firstVisiblePosition);EditText editText = view.findViewById(R.id.edittext);editText.setText(num);}}

获取控件的方式不同

Android listview局部刷新相关推荐

  1. android ListView 局部刷新

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

  2. Android ListView局部刷新item

    当前ListView页面跳转到其他页面返回后,重新获取数据后刷新局部item 1.首先需要获取到跳转之前item的位置,给ListView设置setOnScrollViewListener()接口,在 ...

  3. ListView 局部刷新

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

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

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

  5. Flutter ListView 局部刷新数据、ListView点赞收藏

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. Flutter是谷歌推出的最新的移动开发框架. [x1]微信公众号的每日提醒 随时随记 每日积累 随心而过 [x2]各种系列的视频教程 ...

  6. android 点赞局部刷新,局部刷新ListView,实现点赞功能

    今天看到一个需要实现一个点赞的功能.自己想没想明白,后来看了http://blog.csdn.net/nupt123456789/article/details/39432781 这篇博客,才有了思路 ...

  7. Android ListView列表 刷新和加载更多

    上下拉实现刷新和加载更多的ListView,如下: package com.sin.android.ui;import android.content.Context; import android. ...

  8. Android listview图片刷新闪烁

    很多时候listview里面有图片的时候 我们下拉加载更多或者刷新的时候 列表里面的图片会闪烁 这不是我们想要的效果,所以需要在adapter里面做一定的处理. 在adapter里面加载图片后 把这个 ...

  9. android listview多线程刷新各自的进度,从另一个线程更新主线程中的ListView

    Yar.. 12 我个人使用自定义线程(扩展线程的类),但通过Message发送响应给UI线程.所以在线程的run()函数中有: Message msg; msg = Message.obtain() ...

  10. android:ListView的局部刷新

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

最新文章

  1. 同一个类 cannot be cast to_留学热门assignment之 税收筹划类essay
  2. 面向对象和结构化程序设计的区别X
  3. 每日一皮:程序员和黑客的区别
  4. (23)zabbix单位符号Unit symbols
  5. OpenVX, 运算加速库, NVIDIA
  6. python达梦数据库_Python 编程可以访问达梦数据吗?
  7. 一个简单的空气质量数据监测站项目
  8. 上学与不上学的区别_这是我在全球最大的React会议上学到的
  9. linux bash gt,linux之bash的基础特性(一)--gt;命令历史(history命令),命令补全,路径补全...
  10. SAST算法的学习笔记
  11. android 拼接参数,Android 多参数多文件同时上传
  12. python在线发音-Python如何实现文本转语音
  13. python struct 45s_python32版本,struct.error: argument for 's' must be a bytes object - 小众知识...
  14. SAS 9.4 破解时间限制
  15. 基于python下django框架 实现校园二手书籍交易系统详细设计
  16. 案例:如何评价代码走查的效果?
  17. 1、RH850时钟源及配置
  18. Car Net全文翻译
  19. Laravel文档梳理7、视图
  20. CSS3 Box-sizing属性以及解决兼容性的一些做法

热门文章

  1. 强化学习——Q学习算法
  2. 教孩子学编程python pdf_教孩子学编程 PYTHON语言版 PDF_IT教程网
  3. 能破解百度网盘提取码,云盘万能钥匙宣布关闭!
  4. Laravel下载文件及文档
  5. 接口测试流程和用例设计
  6. stm23f103 usart1串口中断可进入,而stm32f205 usart1的中断进不去解决办法
  7. Openresty 安装luarocks
  8. word如何打出取整符号
  9. 金融公司大量U盾如何管理
  10. Microchip PIC系列8位单片机入门教程(二)点亮LED灯