ListView OnScrollListener详解(滑屏分页显示数据)

Java代码   收藏代码
  1. package com.action;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import android.app.Activity;  
  7. import android.os.Bundle;  
  8. import android.widget.AbsListView;  
  9. import android.widget.ArrayAdapter;  
  10. import android.widget.ListAdapter;  
  11. import android.widget.ListView;  
  12. import android.widget.AbsListView.OnScrollListener;  
  13.   
  14. public class ListViewActivity extends Activity {  
  15.     private ListView lv;  
  16.     private List<String> list;  
  17.     private int lastItem;  
  18.     private int listSize;  
  19.     private ListAdapter adapter;  
  20.     /** Called when the activity is first created. */  
  21.     @Override  
  22.     public void onCreate(Bundle savedInstanceState) {  
  23.         super.onCreate(savedInstanceState);  
  24.         setContentView(R.layout.main);  
  25.         lv = (ListView) findViewById(R.id.lv);  
  26.         adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getData());  
  27.         lv.setAdapter(adapter);  
  28.         lv.setOnScrollListener(new OnScrollListener() {  
  29.               
  30.             @Override  
  31.             public void onScrollStateChanged(AbsListView paramAbsListView, int paramInt) {  
  32.                 //当屏幕停止滚动时为0;当屏幕滚动且用户使用的触碰或手指还在屏幕上时为1;  
  33.                 //由于用户的操作,屏幕产生惯性滑动时为2  状态paramInt
  34.                 System.out.println("***lastItem:"+lastItem);  
  35.                 System.out.println("***listSize:"+listSize);  
  36.                 if(lastItem == listSize){  
  37.                     System.out.println("**************");  
  38.                     //数据全部显示出来时运行此处代码,如果要实现分页功能,在这里加载下一页的数据  
  39.                 }  
  40.                   
  41.             }  
  42.               
  43.             @Override  
  44.             public void onScroll(AbsListView paramAbsListView, int firstVisibleItem,  
  45.                     int visibleItemCount, int totalItemCount) {  
  46. //              //  firstVisibleItem表示在现时屏幕第一个ListItem(部分显示的ListItem也算)  
  47. //              //  在整个ListView的位置(下标从0开始)   
  48. //              System.out.println("***firstParamInt:"+firstVisibleItem);  
  49. //              //  visibleItemCount表示在现时屏幕可以见到的ListItem(部分显示的ListItem也算)总数  
  50. //              System.out.println("***visibleItemCount:"+visibleItemCount);  
  51. //              //  totalItemCount表示ListView的ListItem总数  
  52. //              System.out.println("***totalItemCount:"+totalItemCount);  
  53.                 //  listView.getLastVisiblePosition()表示在现时屏幕最后一个ListItem(最后ListItem要完全  
  54.                 //  显示出来才算)在整个ListView的位置(下标从0开始)  
  55. //              System.out.println("****"+String.valueOf(lv.getLastVisiblePosition()));  
  56.                 lastItem = lv.getLastVisiblePosition();  
  57.             }  
  58.         });  
  59.     }  
  60.     private List<String> getData(){  
  61.         int i;  
  62.         list = new ArrayList<String>();  
  63.         for(i=1; i<10; i++){  
  64.             list.add("ListView"+i);  
  65.         }  
  66.         listSize = list.size()-1;  
  67.         return list;  
  68.     }  
  69. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值