日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

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

來源:程序員人生   發布時間:2015-03-18 09:32:45 閱讀次數:3566次
在使用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.


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 精品欧美一区二区三区精品久久 | 亚洲福利视频一区二区 | 精品国产鲁一鲁一区二区张丽 | 亚洲日本一区二区 | 欧美黄色精品 | 国产成人亚洲综合 | www黄色| 欧美综合第一页 | 五月婷婷在线观看 | 91精品国产色综合久久不卡蜜臀 | www.xx国产 | 欧美精品一区二区三区在线播放 | 在线看的av网站 | 亚洲看片 | 免费在线观看黄色网 | a级欧美片 | 男人操女人免费网站 | 亚洲天堂偷拍 | 日本 欧美 国产 | 精品国产31久久久久久 | www日韩欧美 | 久久国产区 | 最新黄色免费网站 | 国产精品久久久久久久免费大片 | 中文字字幕码日产高清 | 国产中文字幕在线播放 | 青青草一区二区 | 欧美国产另类 | 精品2区 | 国产精品99久久久久久宅男 | 欧美视频导航 | 精品无套 | 9999精品视频 | 欧美亚洲激情 | av网站在线免费观看 | 一区二区三区在线 | 成人91在线 | 成人免费在线观看 | 亚洲精品在线电影 | 国产精品成人a免费观看 | 精品久久久久久久久久久久包黑料 |