关于调用adapter.notifydatasetchanged()没有效果的问题
来源:互联网 发布:生死狙击矩阵怎么得 编辑:程序博客网 时间:2024/06/07 10:19
最近在使用ListView的时候,发现调用其Adapter的notifydatasetchanged()并没有刷新数据,代码如下:
首先是初始化ListView:
list = dbHelper.getalluser();if (list.size() == 0) {Toast.makeText(MainActivity.this, "没有查询到任何数据", Toast.LENGTH_LONG).show();getActionBar().setTitle("没有查询到数据");}adapter = new SimpleAdapter(MainActivity.this, list, R.layout.listitem,new String[] { FeedReaderContract._ID,FeedReaderContract.COLUMN_NAME_NAME,FeedReaderContract.COLUMN_NAME_MOBILE,FeedReaderContract.COLUMN_NAME_ADDRESS }, new int[] {R.id.id, R.id.name, R.id.telephone, R.id.address });listView.setAdapter(adapter);然后当改变了数据库的数据,重新读取以刷新ListView的数据的时候,代码如下:
list = dbHelper.getalluser();if (list.size() == 0) {Toast.makeText(MainActivity.this, "没有查询到任何数据",Toast.LENGTH_LONG).show();getActionBar().setTitle("没有查询到数据");} else {getActionBar().setTitle("读取成功!");}adapter.notifyDataSetChanged();发现ListView并没有刷新,这是为什么呢?
这是因为调用list = dbHelper.getalluser();的时候,list的指向已经改了,指向了一个新的list。既然list的指向已经改变,而调用notifyDataSetChanged会去检查原来list指向的数据是否变化,但是这时的list已经不是原来的list了,所以它无法判断,只能不作出响应了。所以修改代码如下所示:
ArrayList<HashMap<String, Object>> list1 = dbHelper.getalluser();if (list1.size() == 0) {Toast.makeText(MainActivity.this, "没有查询到任何数据",Toast.LENGTH_LONG).show();getActionBar().setTitle("没有查询到数据");} else {getActionBar().setTitle("读取成功!");}list.clear();list.addAll(list1);adapter.notifyDataSetChanged();这样,list的指向就不会改变,它还是指向原来那块内存,这样调用notifyDataSetChanged()就可以起作用了。
0 0
- 关于调用adapter.notifydatasetchanged()没有效果的问题
- adapter.notifyDataSetChanged()使用没有效果的解决办法。
- 关于adapter里面的notifyDataSetChanged()无效果
- 关于SimpleAdapter的notifyDataSetChanged没有效果的问题
- 关于adapter.notifyDataSetChanged无法更新的问题
- adapter调用notifyDataSetChanged刷新没有起作用的原因
- Android ListView Adapter notifyDataSetChanged 刷新没有效果
- Android ListView Adapter notifyDataSetChanged 刷新没有效果
- 关于ListView中adapter调用notifyDataSetChanged无效的原因
- 关于ListView中adapter调用notifyDataSetChanged失效的原因总结
- 关于ListView中adapter调用notifyDataSetChanged失效的原因总结
- 关于Adapter的notifyDataSetChanged无法刷新的问题。
- 关于Adapter的notifyDataSetChanged()方法数据不更新问题解析
- Adapter Adapter.notifyDataSetChanged()使用时容易出现的问题 跑马灯效果Demo
- adapter调用notifyDataSetChanged 无效的原因
- adapter的notifyDataSetChanged(),无法调用getView()
- 关于Adapter的notifyDataSetChanged是否生效
- 关于Adapter的notifyDataSetChanged是否生效
- hbase日志
- jsp内置对象
- JAVA学习笔记整理九(IO)
- Oracle SQL语句优化技巧
- mysql中字段以2递增问题
- 关于调用adapter.notifydatasetchanged()没有效果的问题
- linux 内核定时器
- codeforces 676C. Vasya and String
- 第七次上机实验
- 【SSH系列】-- hibernate基本原理&&入门demo
- 图的最短路径问题
- 【Dongle】【机房合作】之个人感谢
- git初体验
- 分享几个android实用的网站