zoukankan      html  css  js  c++  java
  • ListView OnScrollListener详解(滑屏分页显示数据)

    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
                    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;
        }
    }
  • 相关阅读:
    selinux 关闭
    Microsoft Visual Studio 2013 Language Pack
    Visual Studio Ultimate 2013 with Update 4
    页面滑动
    Android 适配器
    前端空格显示问题
    Your content must have a ListView whose id attribute is 'android.R.id.list'
    Ext.data.Store动态修改url
    Android 页面滑动
    实例化Layout中的布局文件(xml)
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/5662556.html
Copyright © 2011-2022 走看看