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;
        }
    }
  • 相关阅读:
    rowid去重(转)
    Oracle中 row_number() over()分析函数(转)
    oracle分页计算公式
    vue 生产环境和线上环境配置
    vue postcss 样式等比缩放
    element-ui 表单输入手机号验证是否注册或者存在
    使用vue-qr 生成 二维码
    vue下载excel文件,后台传过来的是文件流解决办法
    前端请求接口发送的路径用域名代替ip
    将本地端口映射子域名
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/5662556.html
Copyright © 2011-2022 走看看