产生原因
- 数据集合中的数据没有改变,所以调用notifyDataSetChanged()方法后无效果。
- 数据集合的指向改变了(即被重新赋值了),所以调用notifyDataSetChanged()方法后无任何效果.什么是数据集合的指向改变,看下面代码:
// 实例化List集合对象
list = new ArrayList<String>();
list.add("Take Me To Your Heart");
list.add("My Heart Will Go On");
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
listView.setAdapter(adapter);
// 改变List集合的指向
// 改变了List集合的指向后,调用Adapter的notifyDataSetChanged()将无效果
list = new ArrayList<String>();
list.add("Living To Love You");
adapter.notifyDataSetChanged();
解决办法
解决方法
// 清空原来的List数据集合,不可以重新实例化,只能添加新的集合列表
// 错误多发生在查询数据库操作中
list.clear();
List<String> values = new ArrayList<String>();
values.add("Free Loop");
list.addAll(values);
adapter.notifyDataSetChanged();