scrollState有三种状态,分别是SCROLL_STATE_IDLE、SCROLL_STATE_TOUCH_SCROLL、SCROLL_STATE_FLING
    *SCROLL_STATE_IDLE是当屏幕停止滚动时
 
  *SCROLL_STATE_TOUCH_SCROLL是当用户在以触屏方式滚动屏幕并且手指仍然还在屏幕上时(The user is
scrolling using touch, and their finger is still on the screen)
    *SCROLL_STATE_FLING是当用户由于之前划动屏幕并抬起手指,屏幕产生惯性滑动时

Mainactivity.java

package com.exmple.listviewdemoup;

import java.util.ArrayList;
import java.util.List; import com.exaple.vo.Apap;
import com.exaple.vo.Super; import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast; public class MainActivity extends Activity implements OnScrollListener { private boolean isLoad = false;
int count = 1;
private List<Super> list;
private Apap ap; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listview = (ListView) findViewById(R.id.listview); getData("");
ap = new Apap(list, MainActivity.this);
listview.setAdapter(ap);
listview.setOnScrollListener(this);
} public List<Super> getData(String param) {
list = new ArrayList<Super>();
for (int i = 0; i < 30; i++) {
Super s = new Super(param + "fan" + i);
list.add(s);
}
return list; } List<Super> lists = new ArrayList<Super>(); @Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
Log.i("TAG", "onScrollStateChanged isLoad=" + isLoad + ";是否是停止滚动:"
+ (scrollState == OnScrollListener.SCROLL_STATE_IDLE));
Log.i("TAG", "scrollState" + scrollState);
if (isLoad && scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
Toast.makeText(getApplicationContext(), "开始加载数据", 1).show();
getData("web" + count);
count++; ap.getData(list);
ap.notifyDataSetChanged();
}
} @Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
Log.i("TAG", "firstVisibleItem=" + firstVisibleItem);
Log.i("TAG", "visibleItemCount=" + visibleItemCount);
Log.i("TAG", "totalItemCount=" + totalItemCount);
isLoad = ((firstVisibleItem + visibleItemCount) == totalItemCount);
} }

  适配器

package com.exaple.vo;

import java.util.HashMap;
import java.util.List; import com.exaple.vo.Super;
import com.exmple.listviewdemoup.R; import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.TextView; public class Apap extends BaseAdapter {
List<Super> list;
Context co;
private View view;
private ViewHolder vh; public Apap(List<Super> list, Context co) {
super();
this.list = list;
this.co = co;
} @Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
} @Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
} @Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
} @Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
view = View.inflate(co, R.layout.apa, null);
vh = new ViewHolder();
vh.name = (TextView) view.findViewById(R.id.text); view.setTag(vh);
} else {
view = convertView;
vh = (ViewHolder) view.getTag();
}
vh.name.setText(list.get(position).getName()); return view;
} public void getData(List<Super> s) {
list.addAll(s);
} public class ViewHolder {
TextView name;
TextView price;
CheckBox cb; } }

  

OnScrollListener分页加载的更多相关文章

  1. java攻城狮之路(Android篇)--widget_webview_metadata_popupwindow_tabhost_分页加载数据_菜单

    一.widget:桌面小控件1 写一个类extends AppWidgetProvider 2 在清单文件件中注册: <receiver android:name=".ExampleA ...

  2. Android基本控件之listView(三)<用ListView实现分页加载>

    我们之前讨论了ListView的基本使用方法和ListView的优化 今天我们再来讨论一个关于ListView的一个新的东西~就是分页加载.那么什么是分页加载呢?简单点说,就是"下拉刷新&q ...

  3. Android中ListView分页加载数据

    public class MainActivity extends Activity { private ListView listView=null; //listview的数据填充器 privat ...

  4. 【Android进阶】Listview分页加载数据的实现

    Listview分页加载数据的实现 public class MainActivity extends Activity { protected static final int SUCCESS_GE ...

  5. ListView实现分页加载(三)实现分页加载

    在上一篇中,我们实现了底部布局(即带上了进度条).没有读过的朋友可以点击下面的链接: http://www.cnblogs.com/fuly550871915/p/4866966.html 但是进度条 ...

  6. ListView实现分页加载(一)制作Demo

    一.什么是分页加载 在下面的文章中,我们来讲解LitView分页加载的实现.什么是分页加载呢?我们先看几张效果图吧,如下:                                       ...

  7. android中滑动SQLite数据库分页加载

    今天用到了android中滑动SQlit数据库分页加载技术,写了个测试工程,将代码贴出来和大家交流一下: MainActivity package com.example.testscrollsqli ...

  8. Android ListView分页加载时图片显示问题

    场景:Android ListView需要分页加载,每个item中会有图片,图片又是从网络下载的. 问题:在滑动加载下一页时,上一页的图片明明已经下载完成了,但是无法显示出来. Bug重现: 1,加载 ...

  9. ListView上拉刷新和分页加载完整的Dome

    很多人工作的过程中都会碰到ListView下拉刷新和分页加载,然后大多数公司都已经把框架写好了,大家直接用就可以了,有些人一直对这个事情处于迷茫状态,为了让大家对上拉刷新和分页加载有一个比较全面的认识 ...

随机推荐

  1. [转] 擎天哥as3教程系列第二回——性能优化

    所谓性能优化主要是让游戏loading和运行的时候不卡. 一  优化fla导出的swf的体积? 1,  在flash中,舞台上的元件最多,生成的swf越大,库里面有连接名的元件越多,swf越大.当舞台 ...

  2. [LintCode] Add and Search Word 添加和查找单词

    Design a data structure that supports the following two operations: addWord(word) and search(word) s ...

  3. zk master-slaver机制

    1.基本概念 >>zookeeper handler (zk句柄)有点类似文件句柄,打开一个文件就保持了一个文件句柄!同样的道理: 建立一个到zk server的session就会有一个z ...

  4. css3 半个字符美化方法

    <html lang="zh-CN"> <head> <title></title> <meta charset=" ...

  5. webService 部署以后参数输入框不能显示

    在<system.web> 标签下面加入这个 <system.web> <webServices> <protocols> <add name=& ...

  6. User Agent跨站攻击

    看见有人发帖咨询这个问题http://zone.wooyun.org/content/17658 我就抛砖引玉下,这个案例就是refer被执行了,我有过多起案例 平时上网我们还可以修改浏览器user- ...

  7. 安装配置redis

    1.1查看当前系统环境 查看当前系统版本信息: 查看当前网络连通情况: 1.2使用yum安装 1.3确认redis的安装目录 1.4查看\修改配置文件 1.5启动redis服务并验证 1.6使用tel ...

  8. CentOS碰到两个问题,顺便解决了下

    1.弹出界面 eth0: RTNETLINK answers: File exists 执行service network restart时报的错误 因为service network start造成 ...

  9. MySQL Server-id踩到的坑

    最近踩到一个说大不大,说小不小的坑,在此分享出来给各位同学.事情是这样的,线上有2台服务器,1主1从.A -> B,B服务器从A服务器同步数据.每天使用xtrabackup在B服务器上面进行全备 ...

  10. github page 构建自己的页面

    新建一个仓库.命名为:<你的账号>.github.io 然后上传一个index.html即可 打开浏览器输入:<你的账号>.github.io 即可访问