如何在android中的listview中实现分页?

时间:2012-05-11 14:35:08

标签: android listview

我想创建一个应用程序,其中我有100 uri图像保存在数据库中。现在我希望不会从数据库中获取整个数据只显示在listview中。我希望我只获取数据到列表的当前视图屏幕,因此下一项我滚动列表而不是下一个数据项将被提取,因此应用程序在listview中显示数据的速度不会很慢。

3 个答案:

答案 0 :(得分:3)

冗长的列表视图不会使您的滚动速度变慢 只需单次出现所有100 uri并填写适配器; 它会正常工作......

答案 1 :(得分:2)

下面有一个滚动监听器:

class EndlessScrollListener implements OnScrollListener{
    private static final String TAG = "CacheToDBActivity.EndlessScrollListener";
    private boolean loading = true;

    @Override
    public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {
        if (!(loading) && (totalItemCount - visibleItemCount) <= (firstVisibleItem)) {
            Log.d(TAG, "Load Next Page!");
            loading = true;
        }
    }

    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {}

    public boolean isLoading() {
        return loading;
    }

    public void setLoading(boolean loading) {
        this.loading = loading;
    }

}

您可以实例化EndlessScrollListener并将listview的onScrollListener设置为:

yourListView.setOnScrollListener(endlessScrollListener);

在endlessscrollListener的Log.d(TAG, "Load Next Page!");行之上,您可以从数据库中获取项目,并将它们添加到您的适配器。

致电notifyDataSetChanged();后,您的商品会在列表中显示

希望这有帮助

答案 2 :(得分:1)

签出cwac endless adapter以实现分页。