【正文】
一、具體步驟:
(1)在activiy_main.xml中加一個listview控件;再添加一個item的模闆activity_main_item.xml,加一個底部加載的視圖activity_main_load.xml;
(2)初始化item中的資料;
(3)自定義擴充卡baseadapter;
(4)listiview綁定監聽器onscrolllistener,并實作該監聽器的兩個方法:
public void onscrollstatechanged(abslistview view, int scrollstate)
public void onscroll(abslistview view, int firstvisibleitem,int visibleitemcount, int totalitemcount)
注:如果螢幕滑到最下面了,并且scrollstate的狀态為:滾動完畢之後listview處于停止狀态(手離開螢幕),此時可以加載新資料了
(5)通過額外的線程,來模拟加載新資料;
(6)新資料加載完成後,通過handle通知主線程,将這個新資料顯示在ui界面上(因為涉及到線程安全問題),此時要調用notifydatasetchanged()方法來重新整理。
注:handler為線程之間通信的橋梁
二、代碼實作:
完整版代碼如下:
activiy_main.xml代碼如下:


注:為優化起見,第9行的代碼一定要寫成"match_parent",而不是“wrap_content”(解釋略)
activity_main_item.xml代碼如下:(作為一個item的模闆)


activity_main_load.xml代碼如下:(作為加載時底部的顯示)


mainactivity.java代碼如下:


<code>運作後,顯示結果如下:</code>
下圖依次為:剛運作時、滑動到底部時、重新整理之後的效果
三、總結:
監聽事件處理的接口:onscrolllistener
adapter的重新整理方法:notifydatasetchanged()