1. 程式人生 > >【Android】關於不刪除當前介面資料重新整理列表問題

【Android】關於不刪除當前介面資料重新整理列表問題

前言:

        App中有一模組為應用中心,改版之後低仿了ZFB中應用管理的模式,但是就按照我們之前的開發方式,首頁重新整理時會將資料清空一下然後重新賦值給list填充到介面上,甲方領導看了之後感覺體驗不是很好,因為IOS端是不清空資料重新整理的,所以要求Android端進行修改!(因涉及甲方,所以不貼圖了)

動手:

        本人開發積累的知識不是很足,所以在List上面也沒啥積累,就先試試List和Adapter常用的幾種方式,但是不是很起作用,百度了好像也沒啥解決這種小問題的,於是還是自己動手豐衣足食!

        首先看了下程式碼邏輯:

 recentlyAdapter.clearData(); //先清空adapter中的資料
 String cacheData = lruJsonCache.getAsString("newslist");//然後獲取資料(這個是從快取中取資料,從網路獲取資料也是一個意思,主要是能賦值)
 List<MainApp.RecentBean> newsList = gson.fromJson(cacheData, new TypeToken<List<MainApp.RecentBean>>() {
            }.getType());
 recentlyAdapter.addData(newsList);//最後給adapter賦值

        清空介面的操作就在recentlyAdapter.clearData();這句話。

修改:

        之前定義了List的全域性變數

List<MainApp.RecentBean> listRecent = new ArrayList<>();

我在重新整理的時候取消了上面clearData的操作,做了一個判斷

List<MainApp.RecentBean> newsList = gson.fromJson(jso, new TypeToken<List<MainApp.RecentBean>>() {}.getType());
if (listRecent != null && listRecent.size() > 0) {
    listRecent.clear();
    listRecent.addAll(newsList);
    recentlyAdapter.notifyDataSetChanged();
 } else {
    recentlyAdapter.addData(newsList);
//  recentlyAdapter.notifyDataSetChanged();
 }

先判斷了全域性變數listRecent是否為空以判斷是否第一次獲取資料,如果不是,先將全域性變數清空,然後將最新的資料賦給全域性變數,最後用adapter的notifyDataSetChangerd()方法來重新整理adapter

最後:

        問題算是被解決了,但是應該不是最完美的,才疏學淺,希望有人看見了能夠一起交流!