多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > ListView中notifyDataSetChanged()無法刷新數據的錯誤實例

ListView中notifyDataSetChanged()無法刷新數據的錯誤實例

來源:程序員人生   發布時間:2015-03-18 09:32:45 閱讀次數:3561次
在使用ListView需要動態刷新數據的時候,常常會用到notifyDataSetChanged()函數。
以下為兩個使用的毛病實例:

1、
沒法刷新:
private List<RecentItem> recentItems; ...... recentItems = getData() mAdapter.notifyDataSetChanged();
正常刷新:
private List<RecentItem> recentItems; ...... recentItems.clear(); recentItems.addAll(getData); mAdapter.notifyDataSetChanged();
緣由:
    mAdapter通過構造函數獲得List a的內容,內部保存為List b;此時,a與b包括相同的援用,他們指向相同的對象。
    但是在語句recentItems = getData()以后,List a會指向1個新的對象。而mAdapter保存的List b依然指向原來的對象,該對象的數據也并沒有產生改變,所以Listview其實不會更新。

2、
我在頁面A中綁定了數據庫的數據,在頁面B中修改了數據庫中的數據,希望在返回頁面A時,ListView刷新顯示。
沒法刷新:
protected void onResume() { mAdapter.notifyDataSetChanged(); super.onResume(); }
正常刷新:
protected void onResume() { recentItems.clear(); recentItems.addAll(recentDB.getRecentList()); mAdapter.notifyDataSetChanged(); super.onResume(); }
緣由:
    mAdapter內部的List指向的是內存中的對象,而不是數據庫。所以改變數據庫中的數據,其實不會影響該對象。


void
notifyDataSetChanged()
Notifies the attached observers that the underlying data has been changed and any View reflecting the data set should refresh itself.


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产中文99视频在线观看 | 欧美一区二区三区在线观看免费 | 久久天堂 | 欧美日韩一区二区三区久久 | 国产日韩欧美一区二区三区综合 | www.亚洲日本 | 欧美一欧美一区二三区性 | 日韩免费福利视频 | 亚洲网站在线观看 | 国产欧美一区二区三区精品 | 亚洲综合网址 | 在线观看免费精品国自产 | 精品理论片一区二区三区 | 亚洲精品图区 | 在线爽| 亚洲乱码中文字幕 | 欧美激情校园春色 | 日本精品a在线 | 人善交xxx | 九九热在线免费视频 | 欧美日韩精品一区二区三区不卡 | 国产精品亚洲第一区二区三区 | 日韩淫 | 亚洲欧洲久久久精品 | 久久综合九色 | 免费看叼嘿视频 | 一区二区三区高清在线 | 久草免费小视频 | 天堂在线观看 | 欧美一区二区三区在线可观看 | 最新国产精品亚洲二区 | 国产精品一区二区国产 | 欧美色碰碰碰免费观看长视频 | 色综合天天综一个色天天综合网 | 亚洲免费小视频 | 波多野结衣在线观看免费区 | 久草视频播放 | 日本一区二区网站 | 欧美刺激午夜性久久久久久久 | 华人91视频 | 精品日韩一区二区三区视频 |