无尽的滚动java

时间:2015-01-13 07:55:02

标签: java json

我需要创建一个listView,一次加载10个下载的项目(它们存储在Json对象上),然后当用户滚动到最后一个元素时,listView加载另外10个项目,依此类推......我尝试了各种各样的我找到的外部项目的解决方案,但没有一个工作,现在我想知道,是否有可能使用Json一次只下载n个项目,然后实现一个listView监听器,所以当用户滚动到最后一个元素列表再次调用下载Js​​on的后台任务?

2 个答案:

答案 0 :(得分:1)

我正在使用像这样的滚动侦听器:

public class AutomaticLoadScrollListener implements AbsListView.OnScrollListener {

    private int currentFirstVisibleItem;
    private int currentVisibleItemCount;

    @Override
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
        this.currentFirstVisibleItem = firstVisibleItem;
        this.currentVisibleItemCount = visibleItemCount;
    }

    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        if (currentVisibleItemCount > 0 && currentScrollState == SCROLL_STATE_IDLE) {
            /*** In this way I detect if there's been a scroll which has completed ***/
            /*** do the work for load more date! ***/

            // LOAD DATA
        }
    }
}

只需将其设置为scrollListener,它应该可以工作:

listView.setOnScrollListener(new AutomaticLoadScrollListener());

致谢:我发现它here

答案 1 :(得分:1)

考虑建立分页系统,逐页获取记录,滚动完成结束时获得下一个10项,然后获得下一个10项,直到达到您的列表大小。