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

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

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

【arrayAdapter.notifyDataSetChanged(); 更新数据失败】这里错误的原因是,将db.loadInput()返回的List对象直接传给了adapter中的list,相当于之前adapter中的list引用了db.loadInput()返回的数据,但是adapter引用的是未更改时list的引用,所以更新数据无效。
通俗点说就是arrayAdapter.notifyDataSetChanged(); 这个方法,只能向Adapter里面的List添加数据,而不能每次都给一个新的List对象,否则也无法刷新数据,这里我是把db返回的对象引用赋给了list,所以adapter中list并没改变,所以无法更新数据。

    推荐阅读