80,351
社区成员
发帖
与我相关
我的任务
分享
//设置一个最大的数据条数,超过即不再加载
private int MaxDateNum;
// 最后可见条目的索引
private int lastVisibleIndex;
private String page = "2";
private String pageSize = "8";
gridview.setOnScrollListener(this);
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// Log.d(TAG, "onScrollStateChanged():lastVisibleIndex:"+lastVisibleIndex
// +"adapter.getCount():" + adapter.getCount());
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE
&& lastVisibleIndex == adapter.getCount()) {
// 当滑到底部时自动加载
// page = page+"1";
if(mThread == null|| mThread != null){
mThread = new Thread(runnable);
mThread.start();
}
// ll.setGravity(View.GONE);
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
int totalItemCount) {
// Log.d(TAG, "onScroll():firstVisibleItem:"+firstVisibleItem
// +"visibleItemCount:" + visibleItemCount);
// 计算最后可见条目的索引
lastVisibleIndex = firstVisibleItem + visibleItemCount;
// Log.d(TAG, "onScroll():lastVisibleIndex:"+lastVisibleIndex);
// 所有的条目已经和最大条数相等,则移除底部的View
if (totalItemCount == MaxDateNum) {
lastVisibleIndex = 1;
//// Log.d(TAG, "onScroll():lastVisibleIndex: 0");
// //这里可以再加个最开始一样的对话框,不过这里还不清楚怎么控制,滚一下会运行很多次,这样会导致Toast和对话框总是弹出,所以也可以不要提示给用户
// Toast.makeText(this, "数据全部加载完成,没有更多数据!", 100).show();
}
// TODO Auto-generated method stub
}
Runnable runnable = new Runnable(){
ArrayList<GameInfo> listTemp;
@Override
public void run() {
// page = page+1;
try{
listTemp = WebHelper.getGameList(HotActivity.this, "top", page, "20", null, null);
MaxDateNum = WebHelper.total_sums;
Log.v("ccf", "listTemp--------"+listTemp);
for(GameInfo p:listTemp){
list.add(p);
}
Log.v("ccf", "MaxDateNum:------------"+MaxDateNum);
if(list!=null){
// page= page+"1";
mHandler.obtainMessage(MSG_SUCCESS,gridview).sendToTarget();
}else {
mHandler.obtainMessage(MSG_FAILURE,gridview).sendToTarget();
}
}catch (Exception e){
e.printStackTrace();
}
}
};