- 出现问题
比如这样给适配器传一个集合
List datas;
datas = DBDao.selectMyClock(); //此句是返回一个List
adapter = new AlarmClockListAdapter(getContext(), datas);
myClocks.setAdapter(clocksAdapter);
数据库刷新了,然后想这样刷新数据
private void refresh() {
datas = DBDao.selectMyClock();
adapter.notifyDataSetChanged();
}
是无效的,虽然这地方的datas指向了新的集合对象,但是在adapter的构造函数里传进去的集合还是原先的。所以有2种方式可以解决
1:清空集合,再将新的数据添加进去即可
public void refresh() {
datas.clear();
datas.addAll(DBDao.selectMyClock());
adapter.notifyDataSetChanged();
}
2、将新集合传到adapter里去
public void refresh(List list) {
datas = list
adapter.notifyDataSetChanged();
}