关于listview 的更新问题

时间:2020-12-09 20:42:10

最近遇到了一个这样的问题:

“`
mData = new ArrayList<>();
mAapter = new CheatMessageAdapter(this, mData);
mListView.setAdapter(mAapter);

// 当我想将数据库中的数据load进list中

mData = mManager.loadCheatMessage();      mAapter.notifyDataSetChanged();      

“`这样的操作后,UI界面没有任何数据更新显示

但是换成:

mData.addAll(mManager.loadCheatMessage());

或者:
mData = mManager.loadCheatMessage();
mAapter.setmDates(mData);

数据就更新成功了。
原因:
mManager.loadCheatMessage()返回一个list数组,将它赋给mData,实际是将它的地址赋给mData,但是用的是mAapter,更新数据,而不是mManager.loadCheatMessage()对应的Adapter。