在android程序中,使ListView异步加载数据的时候,如果使它每一次加载完显示了,再去触发加载新的数据。 20
/***异步加载*/mallListView.setOnScrollListener(newAbsListView.OnScrollListener(){//判断是否到了...
/**
* 异步加载
*/
mallListView.setOnScrollListener(new AbsListView.OnScrollListener() {
// 判断是否到了最后一行
boolean isLastRow = false;
/**
* //滚动时一直回调,直到停止滚动时才停止回调。单击时回调一次。
* //firstVisibleItem:当前能看见的第一个列表项ID(从0开始)
* //visibleItemCount:当前能看见的列表项个数(小半个也算) //totalItemCount:列表项共数
*/
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// 判断是否滚到最后一行
if (firstVisibleItem + visibleItemCount == totalItemCount
&& totalItemCount > 0) {
isLastRow = true;
System.out.println("我已经到最后一行拉··");
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// 正在滚动时回调,回调2-3次,手指没抛则回调2次。scrollState = 2的这次不回调
// 回调顺序如下
// 第1次:scrollState = SCROLL_STATE_TOUCH_SCROLL(1) 正在滚动
// 第2次:scrollState = SCROLL_STATE_FLING(2)
// 手指做了抛的动作(手指离开屏幕前,用力滑了一下)
// 第3次:scrollState = SCROLL_STATE_IDLE(0) 停止滚动
// 当滚到最后一行且停止滚动时,执行加载
if (isLastRow
&& scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
System.out.println("加载新数据了。。O(∩_∩)O~");
//执行语句
isLastRow = false;
}
}
});
我在想应该是if里面的判断语句不科学!求解呀。 展开
* 异步加载
*/
mallListView.setOnScrollListener(new AbsListView.OnScrollListener() {
// 判断是否到了最后一行
boolean isLastRow = false;
/**
* //滚动时一直回调,直到停止滚动时才停止回调。单击时回调一次。
* //firstVisibleItem:当前能看见的第一个列表项ID(从0开始)
* //visibleItemCount:当前能看见的列表项个数(小半个也算) //totalItemCount:列表项共数
*/
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// 判断是否滚到最后一行
if (firstVisibleItem + visibleItemCount == totalItemCount
&& totalItemCount > 0) {
isLastRow = true;
System.out.println("我已经到最后一行拉··");
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// 正在滚动时回调,回调2-3次,手指没抛则回调2次。scrollState = 2的这次不回调
// 回调顺序如下
// 第1次:scrollState = SCROLL_STATE_TOUCH_SCROLL(1) 正在滚动
// 第2次:scrollState = SCROLL_STATE_FLING(2)
// 手指做了抛的动作(手指离开屏幕前,用力滑了一下)
// 第3次:scrollState = SCROLL_STATE_IDLE(0) 停止滚动
// 当滚到最后一行且停止滚动时,执行加载
if (isLastRow
&& scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
System.out.println("加载新数据了。。O(∩_∩)O~");
//执行语句
isLastRow = false;
}
}
});
我在想应该是if里面的判断语句不科学!求解呀。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询