Напишите адаптер для элементов списка и добавьте метод для добавления новых результатов.
public class JsonListAdapter extends BaseAdapter {
private List<JSONObject> list;
public void appendList(List<JSONObject>pList) {
if (list== null) {
list= new List<JSONObject>();
}
if (pList != null) {
list.addAll(pList);
notifyDataSetChanged();
}
}
...
}
Добавьте прослушиватель прокрутки для запуска запроса пейджинга
private class PagingScrollListener implements OnScrollListener {
private int lastOffset = 0;
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
boolean isEndOfListReached = firstVisibleItem + visibleItemCount >= totalItemCount;
boolean isOffsetRequested = lastOffset >= totalItemCount;
if (isEndOfListReached && !isOffsetRequested) {
lastOffset = totalItemCount;
new PagingRequest(myListAdapter).execute(lastOffset);
}
}
...
}
Загрузите следующий пакет данныхи обновите адаптер:
private static class PagingRequest extends AsyncTask<Integer, Void, List<JSONObject> {
private JsonListAdapter mAdapter;
public PagingRequest(JsonListAdapter adapter) {
this.mAdapter = adapter;
}
protected ProductList doInBackground(Integer... params) {
int offset = params[0];
// PERFORM REQUEST WITH OFFSET
return newResults;
}
protected void onPostExecute(List<JSONObject> result) {
mAdapter.appendList(result);
}
}
Отказ от ответственности: это всего лишь базовая стратегия, вам все равно нужно заполнить пробелы и адаптировать свой код.