[分享] 當ListView拉到頂時重新整理、拉到底時載入更多。

看板AndroidDev作者 (習慣壞習慣)時間13年前 (2011/04/27 00:11), 編輯推噓8(800)
留言8則, 8人參與, 最新討論串1/1
今天再來延伸一些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
文章代碼(AID): #1DjkwvRR (AndroidDev)
文章代碼(AID): #1DjkwvRR (AndroidDev)