How to update ListView on scrolling while retrieving data from server in Android?

13,440

Solution 1

Here are few useful links for it,

Android: Implementing progressbar and "loading..." for Endless List like Android Market

Endless Listview with current Async Task

Android Endless List

http://www.androidguys.com/2009/10/21/tutorial-autogrowing-listview/

http://mylifewithandroid.blogspot.com/2010/03/progressively-loading-listviews.html

In simple steps,

As user scrolls – detect the end of the list
1)Display a progress notification
2)Ask for update
3)Receive update (asynchronously) and extend list

Solution 2

If you are using a ListView, I believe I can safely assume that you must be using some sort of ListAdapter. Instead of starting a new AsyncTask in the onScroll event, you should maintain just one single AsyncTask to retrieve data from the server, add that data to the ListAdapter dataset and then call notifyDatasetChanged on the ListAdapter.

The ListAdapter and ListView will take care of the rest.

Solution 3

A typical approach would be e.g. to load 25 initially and then have a footer in the list that displays e.g. the current count and the total count and upon pressing loads another 25 and so on. That would be a paged sort of loading.

When you do that you have to keep the current position and notify the adapter that the list has changed.

Share:
13,440
Cathy
Author by

Cathy

New to programming!

Updated on June 14, 2022

Comments

  • Cathy
    Cathy almost 2 years

    Currently, I'm using AsyncTask to handle Http connection and retrieve data as JSON format.
    Loading all data is trivial but it consumes too much time, so I decided to switch to load 10 items at a time using LIMIT OFFSET (mysql).
    Next I set up the event onScroll for my list view to create a new AsyncTask each time user scroll. However, from what I read, AsyncTask is stored in a thread pool which is limited 5 threads at a time, so I'm not sure this is a right approach. I'm newbie to client/server app, so could I anyone give me an advice on this issue? Any related article, documentation would be greatly appreciated.

  • Cathy
    Cathy over 12 years
    Wonderful list! Thanks a lot.