[分享] 當ListView拉到頂時重新整理、拉到底時載入更多。
今天再來延伸一些ListView的用法
當ListView拉到頂時自動重新整理、拉到底時自動載入更多。
對ListVie不熟的朋友,請先搜尋之前版上一些對ListView的教學
一開始先建立兩個layout,分別是head.xml、foot.xml
分別用來顯示重新整理中、載入中的文字
接下來直接來看主要的程式碼
這些變數是用來判斷要不要更新或載入資料
boolean shouldRefresh=true,isRefreshing=false;
boolean shouldLoadData=true,isLoadingData=false;
head = LayoutInflater.from(this).inflate(R.layout.head, null);
//將head.xml轉為view
headtext = (TextView) head.findViewById(R.id.head);
//取得head裡的TextView
foot = LayoutInflater.from(this).inflate(R.layout.foot, null);
//將foot.xml轉為view
list = getListView();//取得ListView
list.addHeaderView(head, null, false);//就addHeaderView...
list.addFooterView(foot, null, false);//就addFooterView...
mydataAdapter = new MydataAdapter(Main.this,alldata);
setListAdapter(mydataAdapter);//一定要放在addHeaderView及addFooterView的後面
接下來在list.setOnScrollListener加上兩個事件
public void onScroll(AbsListView view, int firstVisibleItem,int
visibleItemCount, int totalItemCount) {
shouldLoadData = false;
shouldRefresh = false;
if (firstVisibleItem==0) {//拉到頂時
shouldRefresh=true;
}else if (firstVisibleItem + visibleItemCount == totalItemCount){
//拉到底時
if (list.getCount()<60){
shouldLoadData=true;
}else{//只是測試用,如果超過60筆資料就不要再載入了
foot.setVisibility(View.GONE);
list.removeFooterView(foot);
shouldRefresh = false;
}
}
}
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
//當ListView拉到頂或底時
if (shouldRefresh) {//當ListView拉到頂
if (!isRefreshing)Refresh();//沒在更新資料時
list.setSelection(1);//不管更不更新,都移到第一項
}
if (shouldLoadData && !isLoadingData) {LoadData();}
//當ListView拉到底,且沒在載入資料時
}
}
以上就是比較主要的,其他的就請下載完整的程式碼
http://uploadmirrors.com/download/THZ5W6EA/ListView_AutoLoad.zip
請大家多多指教囉~
--
我的Android作品集
http://android.wuya.us/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.226.99
推
04/27 00:36, , 1F
04/27 00:36, 1F
推
04/27 08:30, , 2F
04/27 08:30, 2F
推
04/27 08:47, , 3F
04/27 08:47, 3F
推
04/27 09:47, , 4F
04/27 09:47, 4F
推
04/27 10:28, , 5F
04/27 10:28, 5F
推
04/27 10:39, , 6F
04/27 10:39, 6F
推
04/27 15:05, , 7F
04/27 15:05, 7F
推
04/27 18:40, , 8F
04/27 18:40, 8F
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章