• 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;
        }
    }
  • 相关阅读:
    Oracle 跨库查询表数据(不同的数据库间建立连接)
    Oracle 跨库查询表数据(不同的数据库间建立连接)
    Win10“启动”文件夹在哪里?如何打开Win10启动文件夹?
    常用[js,css,jquery,html]
    备忘
    常用网站
    常用SQL[ORACLE]
    基于 Promise 的 HTTP 请求客户端 axios
    CSS中字体响应式的设置
    HTML5 History API让ajax能回退到上一页
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/5662556.html
Copyright © 2020-2023  润新知