- package com.action;
- import java.util.ArrayList;
- import java.util.List;
- import android.app.Activity;
- import android.os.Bundle;
- import android.widget.AbsListView;
- import android.widget.ArrayAdapter;
- import android.widget.ListAdapter;
- import android.widget.ListView;
- import android.widget.AbsListView.OnScrollListener;
- public class ListViewActivity extends Activity {
- private ListView lv;
- private List<String> list;
- private int lastItem;
- private int listSize;
- private ListAdapter adapter;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- lv = (ListView) findViewById(R.id.lv);
- adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getData());
- lv.setAdapter(adapter);
- lv.setOnScrollListener(new OnScrollListener() {
- @Override
- public void onScrollStateChanged(AbsListView paramAbsListView, int paramInt) {
- //当屏幕停止滚动时为0;当屏幕滚动且用户使用的触碰或手指还在屏幕上时为1;
- //由于用户的操作,屏幕产生惯性滑动时为2 状态paramInt
- System.out.println("***lastItem:"+lastItem);
- System.out.println("***listSize:"+listSize);
- if(lastItem == listSize){
- System.out.println("**************");
- //数据全部显示出来时运行此处代码,如果要实现分页功能,在这里加载下一页的数据
- }
- }
- @Override
- public void onScroll(AbsListView paramAbsListView, int firstVisibleItem,
- int visibleItemCount, int totalItemCount) {
- // // firstVisibleItem表示在现时屏幕第一个ListItem(部分显示的ListItem也算)
- // // 在整个ListView的位置(下标从0开始)
- // System.out.println("***firstParamInt:"+firstVisibleItem);
- // // visibleItemCount表示在现时屏幕可以见到的ListItem(部分显示的ListItem也算)总数
- // System.out.println("***visibleItemCount:"+visibleItemCount);
- // // totalItemCount表示ListView的ListItem总数
- // System.out.println("***totalItemCount:"+totalItemCount);
- // listView.getLastVisiblePosition()表示在现时屏幕最后一个ListItem(最后ListItem要完全
- // 显示出来才算)在整个ListView的位置(下标从0开始)
- // System.out.println("****"+String.valueOf(lv.getLastVisiblePosition()));
- lastItem = lv.getLastVisiblePosition();
- }
- });
- }
- private List<String> getData(){
- int i;
- list = new ArrayList<String>();
- for(i=1; i<10; i++){
- list.add("ListView"+i);
- }
- listSize = list.size()-1;
- return list;
- }
- }
ListView OnScrollListener详解(滑屏分页显示数据)
最新推荐文章于 2022-09-14 15:49:03 发布