arrayAdapter.notifyDataSetChanged();更新数据失败

今天在写一个小控件的时候发现, 使用arrayAdapter.notifyDataSetChanged()更新数据无效

list = db.loadInput();
arrayAdapter.notifyDataSetChanged();

这里错误的原因是,将db.loadInput()返回的List对象直接传给了adapter中的list,相当于之前adapter中的list引用了db.loadInput()返回的数据,但是adapter引用的是未更改时list的引用,所以更新数据无效。

通俗点说就是arrayAdapter.notifyDataSetChanged();这个方法,只能向Adapter里面的List添加数据,而不能每次都给一个新的List对象,否则也无法刷新数据,这里我是把db返回的对象引用赋给了list,所以adapter中list并没改变,所以无法更新数据。

你可能感兴趣的:(arrayAdapter.notifyDataSetChanged();更新数据失败)