notifyDatasetChanged() is used to force ListView to invoke Adapter.getView()
again, which may be expensive, depending on what you do in it. ListView does
have many optimizations to make notifyDatasetChanged() calls as efficient as
possible though.

If you are doing *very* frequent updates (several times per second for
instance, with let's say a progress bar or some sort of animation) you
should indeed modify the Views directly.

Adaptor should have a
> notifyDatasetChangedAtIndexes(int[] indexes) at the very least, rather
> than force the developer to update the cells manually.


It doesn't really matter, it wouldn't be more efficient to update cells that
are already on screen. It would only matter when you update cells that are
not displayed. That said you can easily just not invoke
notifyDatasetChanged() if you are updating cells that are not between
getFirstVisiblePosition() and getFirstVisiblePositon() + getChildCount().

-- 
Romain Guy
Android framework engineer
[email protected]

Note: please don't send private questions to me, as I don't have time to
provide private support.  All such questions should be posted on public
forums, where I and others can see and answer them

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to