2016-10-06 9 views
0

これを試しましたが、新しいリクエストごとに新しいデータがロードされ、古いdata.needヘルプが置き換えられます Webサービスからデータを取得しています。より多くのそれは仕事スクロールの下部にあるカスタムアダプタを使用してアンドロイドリストビューでデータを追加する方法

public abstract class EndlessScrollListener implements OnScrollListener { 
      private int visibleThreshold = 0; 
      private int currentPage = 0; 
      private int previousTotalItemCount = 0; 
      private boolean loading = true; 
      private int startingPageIndex = 0; 
      public EndlessScrollListener() { 
      } 

      public EndlessScrollListener(int visibleThreshold) { 
       this.visibleThreshold = visibleThreshold; 
      } 
      public EndlessScrollListener(int visibleThreshold, int startPage) { 
       this.visibleThreshold = visibleThreshold; 
       this.startingPageIndex = startPage; 
       this.currentPage = startPage; 
      } 
      @Override 
      public void onScroll(AbsListView view, int firstVisibleItem, 
           int visibleItemCount, int totalItemCount) { 
       if (!loading && (totalItemCount < previousTotalItemCount)) { 
        this.currentPage = this.startingPageIndex; 
        this.previousTotalItemCount = totalItemCount; 
        if (totalItemCount == 0) { 
         this.loading = true; 
        } 
       } 
       if (loading) { 
        if (totalItemCount > previousTotalItemCount) { 
         loading = false; 
         previousTotalItemCount = totalItemCount; 
         currentPage++; 
        } 
       } 
       if (!loading 
         && (totalItemCount - visibleItemCount) <= (firstVisibleItem + visibleThreshold)) { 
        onLoadMore(currentPage + 1, totalItemCount); 
        loading = true; 
       } 
      } 
      public abstract void onLoadMore(int page, int totalItemsCount); 

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

adapter.addData(data)の代わりにadapter.setData(data)のようなものを使用しているようです。 –

答えて

0
int lastVisibleItem = firstVisibleItem + visibleItemCount; 
if(!loading && lastVisibleItem == totalItemCount) { 
    onLoadMore(currentPage + 1, PAGE_SIZE); 
    loading = true; 
} 

をdosentとアダプタ内のデータを更新した後adapter.notifyDataSetChanged()を呼び出すことを忘れないでください。負荷にカスタムadapter.but使用してリストビューに表示

関連する問題