- 浏览: 940548 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (453)
- Windows phone 7 (0)
- Andriod (47)
- iPhone (1)
- Web (30)
- J2EE (34)
- stucts 2学习笔记 (34)
- 开发项目 (3)
- spring学习笔记 (24)
- EJB学习笔记 (6)
- Hibernate学习笔记 (15)
- JPA学习笔记 (8)
- Jsp (11)
- ajax (7)
- 异常收集模块 (1)
- jquery (2)
- phoneGap (2)
- jquery Mobile (0)
- java面试总结 (5)
- Object-C (0)
- javascript (6)
- Eclipse (5)
- 支付集成 (2)
- Weblogic (1)
- Dubbox (5)
- Redis (10)
- linux (21)
- Codis (2)
- React Native (0)
- Mysql (6)
- Docker (3)
- 自动化部署 (1)
- 项目Bug管理平台 (2)
- 负载均衡 (1)
- Mycat (2)
- Java基础知识 (16)
- 数据库 (7)
- Maven (17)
- Kafka (21)
- logs (2)
- 大并发 (2)
- 消息中间件 (2)
- 分布式锁 (3)
- 算法 (4)
- 数字证书原理,公钥私钥 (0)
- 数字证书原理 (1)
- 公钥私钥 (1)
- zookeeper (4)
- Hbase (9)
- Hadoop (2)
- storm (2)
- 通信协议 (1)
- Hive (3)
- git (1)
- JVM (2)
- 大数据相关算法 (1)
- idea (5)
- 将博客搬至CSDN (1)
- 设计模式 (2)
- 表达式 (1)
- 代码审查工具 (0)
- 开源项目 (1)
- PyCharm (0)
- python (6)
- Kubernetes (1)
- swagger (1)
- Maven中mirrors和repository的关系 (0)
- RabbitMQ (3)
- redisson (1)
- k8s (2)
- Mac (1)
最新评论
-
misisipi101:
假设库已经分为32个,那么要扩展到64个,怎样做呢
订单分库分表实践总结以及关键步骤 -
mfkxk298:
简单明了的例子,解决了问题,谢谢啦!
关于ListView中notifyDataSetChanged()刷新数据不更新原因 -
whbwang:
" target="_blank" ...
java web开发 高并发处理 -
suguoqian:
...
java web开发 高并发处理 -
xiangnanyujing:
Dubbox+Redis3.0+Spring+Hibernate+zookeeper实现消息推送核心搭建
使用Listview的时候: 当要动态显示更改后的数据(例如数据库改动), 很多人应该都用过notifyDataSetChanged();这个方法来刷新Listview,显示改后的数据.
这时候就要注意了:
......
private ArrayList<HashMap<String, Object>> usersList;
......
usersList= query(......); //根据查询函数获取一个ArrayList并赋值给绑定到Adapter的数据源usersList
sAdapter.notifyDataSetChanged();
......
如果你也是: 上面这种形式去刷新ListView的数据的话, 是不可以更新的. 必须改成如下形式:
......
//usersList= query(......);
usersList.clear();
usersList.addAll(query(......));
sAdapter.notifyDataSetChanged();
///////////////////////////////////////////////////////////////////////////////////////
原因是: sAdapter会通过usersList获取List中的内容。但是实际上可能(也应该)是,在调用super(MyActivity.this, R.layout.item, usersList)时sAdapter保存了usersList指向原List(假设为List a)的引用,在调用query函数之后,usersList指向了一个新的List(List b)。但是在调用notifyDataSetChanged()时,sAdapter会跟据保存的引用(即指向List a的引用)去更新,因此当然还是原来的结果,不会进行更新。
如果大家也出现这种情况可以使用后者去刷新ListView, 应该就没问题了
这时候就要注意了:
......
private ArrayList<HashMap<String, Object>> usersList;
......
usersList= query(......); //根据查询函数获取一个ArrayList并赋值给绑定到Adapter的数据源usersList
sAdapter.notifyDataSetChanged();
......
如果你也是: 上面这种形式去刷新ListView的数据的话, 是不可以更新的. 必须改成如下形式:
......
//usersList= query(......);
usersList.clear();
usersList.addAll(query(......));
sAdapter.notifyDataSetChanged();
///////////////////////////////////////////////////////////////////////////////////////
原因是: sAdapter会通过usersList获取List中的内容。但是实际上可能(也应该)是,在调用super(MyActivity.this, R.layout.item, usersList)时sAdapter保存了usersList指向原List(假设为List a)的引用,在调用query函数之后,usersList指向了一个新的List(List b)。但是在调用notifyDataSetChanged()时,sAdapter会跟据保存的引用(即指向List a的引用)去更新,因此当然还是原来的结果,不会进行更新。
如果大家也出现这种情况可以使用后者去刷新ListView, 应该就没问题了
发表评论
-
App开发一些总结
2016-04-05 17:48 2601架构因人而异,不同的架构师大多会有不同的看法;架构也因项目 ... -
java 实现微信搜索附近人功能
2015-03-25 18:07 4941最近给andorid做后台查询数据功能,有一个需求是模仿微信 ... -
重庆APP开发 重庆Android 重庆Ios 爬虫科技 重庆爬虫科技
2014-10-06 12:03 9<!--[if gte mso 9]><x ... -
android 操作文件
2012-08-30 11:15 1059package com.liyong; import jav ... -
android获取短信内容
2012-08-29 23:10 1573自己研究: package com.liyong.data; ... -
Android中的日历操作
2012-08-29 13:01 3029日历的操作方法,这里主要用到了ContentProiver的知 ... -
android获取CMNET、WIFI、CMWAP联网状态
2012-08-29 12:40 5869private static final int CMNET= ... -
android实现手势缩放、移动图片
2012-08-28 19:37 9299新建一个触摸监听器类 package com.liyong. ... -
怎样把信息绘制到图片中并且保存到本地硬盘上
2012-08-27 12:53 1386自己研究吧。。。 //解释一下由于我们不是绘制到手机屏幕上所 ... -
android中获取联系人相关信息
2012-08-26 18:42 1694自己看........... public static ... -
修改Android中strings.xml文件, 动态改变数据
2012-08-24 18:25 10865有些朋友可能会动态的修改Android中strings.xml ... -
android内存泄漏
2012-07-25 21:04 1717尽量不要使用setImageBitmap或setImageRe ... -
将程序安装到SD卡
2012-04-28 22:11 888Android 2.2系统的一大改进就是通过Move to S ... -
一个很好的加密解密字符串
2012-04-28 22:11 1146package net.sf.andhsli.hotspotl ... -
获取手机位置
2012-04-28 22:11 1013private double[] getGPS() { Lo ... -
获取手机位置
2012-05-04 09:39 1112private double[] getGPS() { Lo ... -
查看内存存储
2012-05-03 10:05 1105import java.io.File; import a ... -
获取本机电话号码
2012-05-03 10:04 1122private String getMyPhoneNumber ... -
发送彩信
2012-05-03 10:04 1016Uri uri = Uri.parse(\"cont ... -
发送彩信
2012-05-02 09:26 855Uri uri = Uri.parse(\"cont ...
相关推荐
Listview不用notifydatasetchanged更新数据的方法
blog: http://blog.csdn.net/u013293125/article/details/52858396 http://www.cnblogs.com/ityizhainan/p/5976845.html
总结,`notifyDataSetChanged()`是Android中更新ListView数据的关键方法,它使得开发者能够在程序运行时轻松地实现列表数据的动态刷新,提供了丰富的用户体验。但同时也需要注意性能优化,合理使用,以避免对应用...
当用户在ListView顶部下拉时,这个布局会显示一个动画,表示正在刷新数据。在实现过程中,开发者需要监听SwipeRefreshLayout的刷新事件,并在回调中执行更新数据的操作,如重新加载网络数据或者从数据库读取最新数据...
当需要刷新数据时,Adapter需要更新其数据集,并调用`notifyDataSetChanged()`通知ListView数据已改变。 7. **异步加载数据**:由于刷新操作通常涉及到网络请求,因此应在子线程(例如使用AsyncTask)中进行,以...
本教程将详细介绍如何在Android中利用ListView实现下拉上拉刷新数据的功能。 首先,我们需要了解下拉刷新和上拉加载的概念。下拉刷新通常用于用户滑动到列表顶部时,通过手势触发更新数据的操作;上拉加载则是在...
首先,下拉刷新功能(Pull-to-Refresh)让用户可以通过在ListView顶部向下拉动来刷新数据。这种功能常见于新闻应用、社交网络等,以获取最新的信息。实现这一功能通常涉及以下步骤: 1. **引入库**:许多第三方库如...
在提供的资源中,可能包含了一个名为"CustomListView"的自定义ListView示例,它可能包含了下拉刷新和加载更多的实现代码,以及"20130722102740.jpg"可能是一个关于ListView使用示例的截图。 综上所述,理解并实现...
总结起来,`notifyDataSetChanged()`不刷新问题通常源于数据源与Adapter数据的同步问题。在数据变更后,必须确保Adapter内部的数据引用也相应更新,这样才能正确触发ListView的刷新。同时,确保`getView()`方法能...
本教程将详细讲解如何在ListView中更新数据并利用`notifyDataSetChanged()`方法来刷新列表视图。 首先,我们需要创建一个ListView的基本结构。在布局文件(如activity_main.xml)中,我们需要添加一个ListView控件...
ListView下拉刷新功能是现代移动应用中的一个常见特性,允许用户通过下拉列表来获取最新的数据,如社交媒体的新消息或天气更新。这个"Android应用源码 ListView下拉刷新 Demo"提供了一个实际的例子,帮助开发者了解...
将ListView作为SwipeRefreshLayout的子视图,设置相应的回调,当用户下拉时,触发刷新数据的操作。同样,数据刷新后更新Adapter并通知ListView。 5. **优化性能**:对于大数据量的ListView,为了提高性能,需要使用...
本示例主要探讨如何在ListView中实现数据的刷新和更新,包括单条数据的更新以及多条数据的添加。以下是一些核心知识点: 1. **适配器(Adapter)**:ListView的核心是适配器,它负责将数据绑定到ListView的各个视图...
下拉刷新功能让用户在ListView顶部向下拉动时触发刷新操作,通常用于更新列表中的数据。这一特性在移动应用中非常常见,特别是那些实时性要求较高的应用,如新闻、邮件或社交媒体应用。实现下拉刷新功能,开发者可以...
4. 在回调函数中,异步加载新的数据,加载完毕后更新Adapter的数据集,通常需要调用notifyDataSetChanged()通知UI更新。 5. 如果使用了SwipeRefreshLayout,还需要处理下拉刷新的逻辑,确保在刷新过程中不再触发上拉...
在`getView()`中,我们首先检查传入的convertView是否为空,如果不为空,我们可以直接使用它,更新其显示的数据,避免了重复创建View。 4. **局部刷新优化**:为了实现局部刷新,我们需要在`getView()`中判断当前...
在`onRefresh()`方法中,开发者需要执行刷新数据的操作,例如从网络或数据库加载新数据。 3. **自定义头部布局**:虽然SwipeRefreshLayout内置了一个默认的刷新动画,但有时候开发者可能需要自定义更符合应用风格的...
本示例"ListView添加数据后动态刷新Demo"将向我们展示如何在ListView中动态加载和更新数据。动态刷新意味着当数据发生变化时,ListView能够实时反映出这些变化,而无需重新加载整个列表。 首先,我们来理解ListView...
在实际应用中,我们往往需要根据业务需求实时地更新ListView中的数据。本篇将详细讲解如何在ListView中使用自定义Adapter来实现数据的及时更新。 首先,我们需要理解ListView的工作原理。ListView通过Adapter来与...
`ListView下拉刷新获取数据库数据`这个主题涉及到了ListView的交互更新以及如何从数据库中动态加载数据。在这个场景中,用户通过下拉ListView的动作触发刷新操作,系统则从数据库中获取新的数据并更新到ListView上,...