- 服务器端JSON数据分页查询
当listview里的数据非常多时,一个屏幕展示不完,这时就需要分页的技术,这种技术在实际开发中应用的非常多,比如说滑动到最下面时,就会加载新的内容,就在分一页显示。
客户端传给服务器需要第几页和每页多少条这两项数据,服务器负责把数据传递给客户端
- ListView的滚动事件
listView.setOnScrollListener(new OnScrollListener() {
/**
* 当ListView的滚动状态发送变化的时候调用该方法,通常是在ListView的适配器的getView
* 方法被调用之前调用。其中参数二是指的ListView的滚动状态,共有三种状态:
* 1、SCROLL_STATE_IDLE 静止状态
* 2、SCROLL_STATE_TOUCH_SCROLL 手指滚动状态
* 3、SCROLL_STATE_FLING 手指不动,但是屏幕还在滚动(惯性滚动)
*
* 当从一种状态转变到另外一种状态时,该方法才会调用
*/
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {
case OnScrollListener.SCROLL_STATE_FLING:
System.out.println("SCROLL_STATE_FLING");
break;
case OnScrollListener.SCROLL_STATE_IDLE:
System.out.println("SCROLL_STATE_IDLE");
break;
case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
System.out.println("SCROLL_STATE_TOUCH_SCROLL");
break;
default:
break;
}
}
/**
* 正在滚动时调用该方法
* 1、firstVisibleItem第一个Item的位置
* 2、visibleItemCount 可见的Item的数量
* 3、totalItemCount item的总数
* 注意:当firstVisibleItem=0到时候代表已经滑动到最顶端
* 当visibleItemCount + firstVisibleItem = totalItemCount代表已经滑动到最低端
*/
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// System.out.println(firstVisibleItem + ":" + visibleItemCount + ":" + totalItemCount);
if(firstVisibleItem == 0){
System.out.println("已经滑动到顶端");
}else if(firstVisibleItem + visibleItemCount == totalItemCount){
System.out.println("已经滑动到底端");
}
}
});
- Android客户端使用ListView实现分页效果
ListView刷新分页
步骤:
1.当前Activity implement OnScrollListener,这是一个滚动条的事件
2.实现接口的方法
3.listview注册滚动监听
4.Adapter中添加增加数据的函数
5.获得2页以后的数据后,adapter增加数据,并刷新notifyDataSetChanged()
- ListView点击事件监听器
ListView的点击监听器:OnItemClickListener,实现OnItemClickListener接口
作用:监听每个item的点击动作,并做出相应操作。
重写onItemClick(AdapterView<?> parent, View view, int position, long id)
parent:代表被操作的控件(ListView)
view:代表item的视图
position:item所在的位置
id:item的id。通常不常用。在展示数据库方面时才会使用该参数。
步骤:
1.实现OnItemClickListener接口
2.重写onItemClick
3.listview注册点击监听器