最近遇到了一个这样的问题:
“`
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。