zoukankan      html  css  js  c++  java
  • listview通过onscrollListener实现分页加载

    package com.bwie.listviewloadmore;
    
    import java.util.ArrayList;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.widget.AbsListView;
    import android.widget.AbsListView.OnScrollListener;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    
    public class MainActivity extends Activity implements OnScrollListener {
    
        private ListView lv;
        private ArrayList<String> list;
        private boolean isLoad = false;
        int count = 1;
        private ArrayAdapter<String> adapter;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            // 找到该布局文件下的控件
            lv = (ListView) findViewById(R.id.lv);
            // 创建集合对象
            list = new ArrayList<String>();
            // 为lv设置数据
            setData("");
    
            // 为lv设置适配器
            adapter = new ArrayAdapter<String>(MainActivity.this,
                    android.R.layout.simple_expandable_list_item_1, list);
            lv.setAdapter(adapter);
    
            // 为lv设置滚动监听事件
            lv.setOnScrollListener(this);
    
        }
    
        private void setData(String param) {
    
            for (int i = 0; i < 30; i++) {
                list.add(param + "data" + i);
            }
    
        }
    
        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            // TODO Auto-generated method stub
            // listview滑动到底部,并且listview处于静止的状态
            if (scrollState == SCROLL_STATE_IDLE && isLoad) {
                count++;
                // 重新请求网络数据
                setData("web" + count);
    
                // 刷新适配器
                adapter.notifyDataSetChanged();
    
            }
    
        }
    
        @Override
        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {
            // TODO Auto-generated method stub
            // 判断是否需要加载另一页数据
            isLoad = (firstVisibleItem + visibleItemCount) == totalItemCount;
    
        }
    
    }
  • 相关阅读:
    【网络游戏同步技术】帧同步的一致性
    【C++】STL常用容器总结之五:双端队列deque
    使 egg-multipart 同时支持 stream 和 file
    react + 图灵api 实现模拟客服
    egg 扩展上传文件白名单
    input[type=file] 样式美化,input上传按钮美化
    react-lazyload 实现图片懒加载
    useEffect 模拟 react 生命周期
    egg 实现下载数据,并保存成excel文件
    egg 实现上传excel,并解析保存到数据库
  • 原文地址:https://www.cnblogs.com/8023-itxinde/p/5401920.html
Copyright © 2011-2022 走看看