在Android开发中用到ListView时,经常遇到要更改ListView内容的情形,比如删除或增加ListView中显示的条目,这里给大家提供一下思路:不论ListView要显示的对象是什么(如:Cursor或Array或List),要实现ListView数据的更新,都要手动去更改要显示的数据对象,然后调用相应的方法(如:requery()或notifyDataSetChanged())来刷新ListView。针对不同的情形,下面给出相应解决办法的关键代码:

1.用ListView来显示数据库的数据时,经常会用到SimpleCursorAdapter来作为ListView的适配器,这时要用到Cursor来访问数据库,当数据库数据发生改变时,需要通过cursor.requery()方法来更新ListView。注:这个方法在API11以后被废弃了,原因是执行该方法是会查询数据库,如果查询动作是在主线程(UI线程)中完成的,由于查询过程要耗一定时间,所以有可能引起ANR。可以通过重新获取一个新的cursor来解决这个问题。

2.当ListView显示的数据时通过Array或者List传入的时候,要实现ListView数据的更新,就要手动来更改Array或者List,

以List为例,要调用list.add()或者list.remove()方法来增加或删除数据。然后再调用adapter.notifyDataSetChanged()来更新显示数据。

总的来说,要实现ListView数据的更新,实质是实现对应的Adapter中显示数据的更新。而要实现Adapter数据更新,就要自己手动来完成对应数据的更改,如上面提到的requery()或者list.add()、list.remove()等,然后再调用adapter的notifyDataSetChanged()方法来实现ListView的刷新。

ListView数据动态刷新的更多相关文章

  1. ReactNative新手学习之路06滚动更新ListView数据的小示例

    本节带领大家学习使用ListView 做一个常用的滚动更新数据示例: 知识点: initialListSize={200} 第一次加载多少数据行 onEndReached={this.onEndRea ...

  2. Android零基础入门第44节:ListView数据动态更新

    原文:Android零基础入门第44节:ListView数据动态更新 经过前面几期的学习,关于ListView的一些基本用法大概学的差不多了,但是你可能发现了,所有ListView里面要填充的数据都是 ...

  3. android ListView中含有按钮事件实时更新ListView数据案例

    1.布局文件Listview <?xml version="1.0" encoding="utf-8"?> <android.support. ...

  4. ListView的动态刷新问题——用notifyDataSetChanged没作用

    也许很多开发的朋友,尤其是Android初学者(笔者也是个初学者),在动态刷新ListView时,使用notifyDataSetChanged并没有起到作用.有时会被困扰得很痛苦. 其实,在使用not ...

  5. 安卓 android ListView 数据填充

    在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示.抽空把对ListView的使用做了整理,并写了个小例子,如下图. 列表的显示需要三 ...

  6. 50个Android开发技巧(24 处理ListView数据为空的情况)

         在移动平台上为用户展示数据的一个经常用法是将数据填充进一个List内,而此时须要注意的一点就是: 原文地址:(http://blog.csdn.net/vector_yi/article/d ...

  7. C#Winfrom Listview数据导入Excel

    需引用 public void ExportToExecl() { System.Windows.Forms.SaveFileDialog sfd = new SaveFileDialog(); sf ...

  8. Android UI组件----自定义ListView实现动态刷新

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  9. Android: ListView数据的分批加载 以及 Handle 总结

    这是效果图: activity_main.xml 01 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ ...

随机推荐

  1. PHP - 将HTML代码转义

    代码: 页面显示: 页面源码:

  2. JQuery - 提交表单

    [JavaScript] JQuery异步提交表单与文件上传 Jquery.form.js是一个可以异步提交表单及上传文件的插件. 文档地址:http://jquery.malsup.com/form ...

  3. secureCRT登录不上ubuntu,Connection closed

    secureCRT登录不上ubuntu 1.第一个原因是sshd服务没开,或者防火墙没关.装好sshd并打开就好. http://www.cnblogs.com/mylinux/p/5101956.h ...

  4. BZOJ 4057: [Cerc2012]Kingdoms( 状压dp )

    状压dp.... 我已开始用递归结果就 TLE 了... 不科学啊...我dp基本上都是用递归的..我只好改成递推 , 刷表法 将全部公司用二进制表示 , 压成一个数 . 0 表示破产 , 1 表示没 ...

  5. python中eval, exec, execfile,和compile [转载]

    eval(str [,globals [,locals ]])函数将字符串str当成有效Python表达式来求值,并返回计算结果. 同样地, exec语句将字符串str当成有效Python代码来执行. ...

  6. gethostbyname()函数说明

    gethostbyname()函数说明——用域名或主机名获取IP地址 包含头文件    #include <netdb.h>    #include <sys/socket.h> ...

  7. jetty插件开发配置

    <plugins> <!-- jetty插件 --> <plugin> <groupId>org.mortbay.jetty</groupId&g ...

  8. mysql 创建表 create table详解

      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ...

  9. ASP.NET、WinForm、C# - 配置文件信息读取 [ Web.config || Appconfig ]

    <configuration> <appSettings> <add key="name" value="HF_Ultrastrong&qu ...

  10. 14.10.1 InnoDB Disk I/O

    14.10 InnoDB Disk IO and File Space Management InnoDB 磁盘IO和文件空间管理: 14.10.1 InnoDB Disk I/O 14.10.2 F ...