adapter中的数据源集合或数组等必须是同一个数据源,也就是同一个对象。
比如从数据中查找了字符串集合来当做adapter中的数据源:
先初始化数据源,然后将数据源设置到adapter中
XXXAdaper adapter = new XXAdapter(list);
当数据源发生变化的时候,我们会调用adaper的notifyDataSetChanged()方法,当直接将从数据库或者其他方式获取的数据源集合或者数组直接赋值给当前数据源时,相当于当前数据源的对象发生了变化,当前对象已经不是adapter中的对象了,所以adaper调用notifyDataSetChanged()方法不会进行刷新数据和界面的操作。
list.clear();
list.addAll(newList);//或者采用遍历的方式加入集合
adapter.notifyDataSetChanged();