1. 程式人生 > >notifyDataSetChanged()無效原因

notifyDataSetChanged()無效原因

notifyDataSetChanged()無效的情況。這是為什麼呢?
我們知道setAdapter()的時候,我們傳入的Adapter引數一般都會繫結一個集合作為資料來源,如下:

    mPopWAdapter = new ProductPopWAdapter(mPopWDatas, mPopWStatus);
    mPopWList.setAdapter(mPopWAdapter);

然後我們進行如下操作:

    mPopWDatas = new ArrayList<>();
    mPopWAdapter.notifyDataSetChanged();

這時候發現notifyDataSetChanged()無效,這是因為一開始mPopWDatas指向了一個集合,mPopWAdapter繫結資料來源的時候就是綁定了mPopWDatas指向的這個集合,而後來的操作只是改變了mPopWDatas的指向,讓mPopWDatas指向了一個新的集合,但是並沒有改變mPopWDatas原來所指向的集合。而我們的mPopWAdapter繫結的是原來的集合,原來的集合沒有產生任何變化,所以notifyDataSetChanged()無效。