天天看點

Android【 ListView】滑動資料加載

android開發的時候,會經常用到listview。在擷取網絡資料進行展示的時候,要充分考慮流量和網絡延遲。一般讀取網絡資料都是即時性的,就是說,使用者看到哪裡就擷取哪裡的資料,這樣就節約了流量和降低了系統的負擔。

  通過翻頁和滑動加載可以達到這種目的,翻頁我想大家肯定不陌生。在android裡有左右滑動翻頁、點選按鈕翻頁等等,有時候根據情況和使用者體驗。很多人采用滑動資料加載的模式,這種模式通過監聽listview的滑動事件來加載資料,優點在于:使用者體驗較好,可根據使用者需要實時加載資料,可以根據需要做出各種比較絢麗的效果。缺點在于資料量過大的時候,比如幾百上千條資料。使用者想傳回去看指定資訊時,這是使用者體驗就不是很好了。是以不管什麼功能,要注意分情況使用。

  下面進入正題,首先我們實作listview的onscrolllistener事件:protected onscrolllistener onscrolllistener = new onscrolllistener() {

java代碼  

Android【 ListView】滑動資料加載

public void onscrollstatechanged(abslistview view, int scrollstate) {  

    // 判斷listview是否停止滑動并且處于底部  

    if(scrollstate == onscrolllistener.scroll_state_idle && isrefreshfoot){  

            loadbool = false; // 用布爾作為開關,防止在加載資料時,出現多次啟動線程加載資料  

            // 資料加載  

            loaddata();  

    }  

}  

public void onscroll(abslistview view, int firstvisibleitem,  

        int visibleitemcount, int totalitemcount) {  

    // 判斷是否滑動到底部  

    if(firstvisibleitem + visibleitemcount == totalitemcount){  

        isrefreshfoot = true;  

    }else{  

        isrefreshfoot = false;  

 在滑動的時候需要判斷是否停止滑動并且listview以滑至底部,這裡我用了一個loadbool變量來設定狀态,防止使用者在滑動加載資料後,繼續多次滑動加載。容易引起加載線程過多導緻程式異常。

實作了滑動事件處理後,隻需要監聽listview的滑動事件就行了。在滑動的時候會調用loaddata()方法,在這個方法裡實作資料加載就行了。

繼續閱讀