【问题标题】:Load more data from database and show in listview android从数据库加载更多数据并在listview android中显示
【发布时间】:2015-08-05 08:03:30
【问题描述】:

我想在 ScrollView 达到阈值时加载数据。首先,我想从数据库中显示最后 20 行并在 ListView 中显示,然后在使用 SwipeRefreshLayout 加载另外 20 行从数据库中获取并在 ListView 中显示等等...

谢谢

【问题讨论】:

  • 我不确定 ListView 但在 RecyclerView 你必须覆盖mRecyclerView.setOnScrollListener(new OnScrollListener() {..},里面有onScrollStateChanged,你可以实现你的逻辑。比如(totalItem==20)&&(totalitem==currentVisibleItem+previousSeenItems"...,那么loadMoreFromDB() ...

标签: android listview swiperefreshlayout


【解决方案1】:

您正在搜索的内容称为EndlessScrollListener。您必须扩展类EndlessScrollListener 并实现onLoadMore 方法。

public class MyEndlessScrollListener extends EndlessScrollListener {

   @Override
   public void onLoadMore(int page, int totalItemsCount) {
        loadData(page);  
   }
}

并在listView上设置监听器:

listView.setOnScrollListener(new EndlessScrollListener());

如果需要,您可以使用EndlessScrollListener 的其他构造函数。

【讨论】:

    【解决方案2】:

    这是我用来在列表视图末尾加载更多数据的方法

     listview.setOnScrollListener(new OnScrollListener(){
    
            @Override
            public void onScroll(AbsListView view,
            int firstVisibleItem, int visibleItemCount,
            int totalItemCount) {
            //Algorithm to check if the last item is visible or not
            final int lastItem = firstVisibleItem + visibleItemCount;
            if(lastItem == totalItemCount){                 
            // you have reached end of list, load more data probably call your database to load more data            
            }
    
            @Override
            public void onScrollStateChanged(AbsListView view,int scrollState) {
            //blank, not using this
            }
            });
    

    希望这个link可以帮到你

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-15
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-16
      相关资源
      最近更新 更多