`

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;
    }
}

 如果还有什么不懂的,见意去看下源码。

分享到:
评论
6 楼 hilary3113 2012-09-02  
kondoh 写道
呵呵,看参数名 paramAbsListView,就知道是反编译来的

看来你很细心
5 楼 kondoh 2012-08-30  
呵呵,看参数名 paramAbsListView,就知道是反编译来的
4 楼 ariel791331313 2012-08-08  
恩,不错哦
3 楼 hilary3113 2012-01-10  
wufeng_135 写道
          

有什么不足可以说出来,别用新号搞破坏呀
2 楼 wufeng_135 2012-01-06  
          
1 楼 wufeng_135 2012-01-06  
id

相关推荐

    android listview scroll滑屏显示sqlite分页,类似聊天记录,listview动态添加sqlite分页数据

    前言:最近做基于openfire聊天(仿QQ、微信)翻页查看聊天记录,为此做了根据时间倒序查看聊天记录,先声明这demo是根据id来倒序(原理和时间倒序一样) 文章地址:...

    ListView动态加载数据分页

    消息中可以包含分页数据,然后主线程中的Handler实例会接收到这个消息并处理,更新ListView。 步骤如下: 1. 创建一个Handler实例,绑定到主线程。 2. 在需要加载更多数据时,启动新线程,执行数据获取任务。 3. ...

    使用listview分页显示数据

    分页显示是优化大型数据集显示的重要手段,它可以提高用户体验,避免一次性加载过多数据导致的内存压力和界面卡顿。本资源提供了一个自定义ListView结合分页功能的实践案例,包括代码实现和数据库操作,对于学习和...

    C# WinForm ListView,DataGridView通用分页控件

    WinForm ListView,DataGridView通用分页控件,因为自己要用,自己根据网上搜罗的一些代码进行重新封装,文件中有一个PagerNavigate.dll文件,包含了两种分页控件,ListView,DataGridView可以通用任何一个分页控件。...

    安卓listview相关相关-Listview分页加载数据.rar

    2. Adapter:是ListView的灵魂,负责将数据源转化为ListView可以显示的视图。常见的Adapter有ArrayAdapter、SimpleAdapter等,开发者也可以自定义Adapter。 3. ViewHolder模式:为了提高ListView的滚动性能,通常...

    这是一个ListView分页显示的示例

    本示例"HeaderBottomListDemo"专注于实现ListView的分页加载功能,这在处理大数据集时尤为重要,因为它可以提高应用性能并优化用户体验。分页加载允许用户滚动到列表底部时加载更多数据,而不是一次性加载所有内容,...

    Android ListView下拉刷新和分页

    在Android开发中,ListView...通过SwipeRefreshLayout实现下拉刷新,结合OnScrollListener实现分页加载,可以让用户更加流畅地查看和交互数据。在实际开发中,还需要注意网络请求的优化,避免频繁请求导致的性能问题。

    VB ListView 数据分页处理

    在VB(Visual Basic)开发中,ListView控件是一种常见的组件,用于显示列表形式的数据,如文件、联系人等。在处理大量数据时,为了提高用户体验和应用程序性能,通常需要实现数据分页功能。本篇文章将深入探讨如何在...

    ListView分页显示上一页和下一页

    "ListView分页显示上一页和下一页"这一主题,就是讨论如何实现ListView在用户滚动到列表底部时自动加载下一页数据,同时提供上一页的切换功能。 一、分页原理 分页的基本思想是将大量数据分为多个小部分(页)来...

    基于VB6+ADO+ListView制作的一个数据库分页显示程序

    3. 数据显示:使用ListView控件来显示数据库中的数据,在opendatabase函数中,使用list1.ListItems.Add来添加表名到ListView控件中。 在list1_MouseUp事件中,使用list1.ListItems.Add来添加表名到ListView控件中,...

    android listview分页查询显示

    在这个"android listview分页查询显示"的Demo中,我们将深入探讨如何实现这个功能,以及如何结合SQLite数据库进行数据管理。 首先,ListView的工作原理是通过Adapter来连接数据源和视图。Adapter负责将数据转化为...

    listView分页显示 加载更多

    "ListView分页显示 加载更多"的功能是优化用户体验的重要手段,它允许用户在滚动到列表底部时动态加载更多的数据,而不是一次性加载所有内容,从而节省内存资源并提高应用性能。 在实现ListView分页加载更多功能时...

    Android中Listview分页显示

    本文将详细讲解如何在Android中实现ListView的分页显示。 一、ListView基础 ListView是Android提供的一个可滚动视图,用于展示多个同类型的项。每个项通常由一个布局文件(XML)定义,通过Adapter进行数据绑定。...

    listview上拉分页加载数据

    "listview上拉分页加载数据"这个主题是关于如何实现ListView的无限滚动或上拉加载更多功能,这是一个优化用户体验的重要特性,尤其是在处理大量数据时。下面我们将深入探讨这个知识点。 首先,我们需要了解ListView...

    Android listView 分页功能

    - `data_provider.py`或类似文件:可能用于模拟数据源,生成分页数据。 - `build.gradle`和`.java`文件:项目构建配置和其他类文件。 6. **注意事项** - 考虑用户体验,避免在用户滚动过程中频繁加载数据,可...

    Android里ListView分页加载数据

    通过以上步骤和优化,你可以实现在Android应用中有效地使用ListView分页加载数据,提升用户体验。在实践中,还需要根据具体需求和项目规模来调整和优化。在OndeStudy1这个文件中,可能包含了实现分页加载的示例代码...

    listview分页加载

    ListView的数据分页加载功能是提高用户体验和优化应用性能的关键技术。本篇文章将深入探讨如何在Android中实现ListView的分页加载。 首先,理解分页加载的概念至关重要。分页加载是指在用户滚动列表到底部时,应用...

    ListView快速显示100万条数据用时1秒

    在Android开发中,ListView是常用的数据展示组件,用于显示大量数据列表。然而,当需要处理如100万条这样的大数据量时,如果处理不当,可能会导致应用性能急剧下降,用户体验变得极差。本示例将详细介绍如何通过优化...

Global site tag (gtag.js) - Google Analytics