关于Android中Adapter调用notifyDataSetChanged方法无效解析

来源:互联网 发布:淘宝理财产品可靠吗 编辑:程序博客网 时间:2024/06/02 03:18

在为ListView设置Adapter后,调用notifyDataSetChanged()方法改变数据,

但是显示界面却无效果,总结以下几种原因:

1、未调用notifyDataSetChanged()方法,该错误很容易排除

2、数据集合中的数据没有改变,所以调用notifyDataSetChanged()方法后无效果,该错误也很容易排除

3、数据集合的指向改变了,所以调用notifyDataSetChanged()方法后无任何效果,该错误经常出现,并十分不容易排除。什么是数据集合的指向改变,看下面代码,各位看官就能明白了:

private ListView listView;private List<String> list;private ArrayAdapter<String> adapter;private void setAdapter() {//实例化List集合对象list = new ArrayList<String>();list.add("Take Me To Your Heart");list.add("My Heart Will Go On");list.add("Yesterday Once More");list.add("I Still Believe");list.add("Just One Last Dance");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();}


0 0
原创粉丝点击