关于Adapter的一些问题
1.adapter的notifyDataSetChanged()方法不能够刷新数据
一开始我以为是Adapter自身的问题.一般会这样解决.
在自定义的Adapter中提供一个这样的方法.
public void setData(List<Bean> data){
this.data= data;
}
当然这样能解决问题.但是到底为什么数据刷新不了呢.
其实不需要怎么想.
出现这种问题只有一种可能
必然是新的数据没有给Adapter.那来看一下我们一般怎么写的将数据给Adapter的呢.
通常有两种写法.其中一种是错误的 也就数据不能更新.
Activity中
public void initData(){
....添加数据
data.add()
adapter.notifyDataSetChanged();
}
上面的是没有问题的.
再看我们通常还会将获取数据封装
同样是Activity中.
public List<Bean> getData(){
List<Bean> d = new ArrayList<Bean>();
....获取数据的操作
return d;
}
public void initData(){
data = getData();
adapter.notifyDataSetChanged();
}
然而这时候就刷新不了数据了.
除非你的自定义Adapter是内部类否则绝对刷新不了.
其实这里已经很明显了 data = getData