作者badhabit (习惯坏习惯)
看板AndroidDev
标题[分享] 当ListView拉到顶时重新整理、拉到底时载入更多。
时间Wed Apr 27 00:11:31 2011
今天再来延伸一些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
1F:推 jason860421:推~ 04/27 00:36
2F:推 givemepass:来研究看看 04/27 08:30
3F:推 kenliner:推~实用 04/27 08:47
4F:推 nowar100:已收录 04/27 09:47
5F:推 QQting:实用! 04/27 10:28
6F:推 laiis:这太棒了!推推推到底! 04/27 10:39
7F:推 Lawnchern:推呀~ 04/27 15:05
8F:推 mamaya3:推一个 04/27 18:40