Your Adapter has these 
getChildView<http://developer.android.com/reference/android/widget/ExpandableListAdapter.html#getChildView(int,
 
int, boolean, android.view.View, android.view.ViewGroup)> and 
getGroupView<http://developer.android.com/reference/android/widget/ExpandableListAdapter.html#getGroupView(int,
 
boolean, android.view.View, android.view.ViewGroup)> methods. Both these 
methods have an argument called "*convertView*". That "*convertView*" 
argument is a view object that already has been created and filled with 
data by your adapter. If convertView is *not null* your Adapter should 
reuse that object instead of inflating or creating a new view.

And that's the whole point and one possible solution to your problem. You 
can "manually" do the same what ListAdapter does under the hood. Just get 
the correct child view you want to update and pass that child view as 
"convertView" argument to your adapter's getChildView method (with the 
correct group index and child item position of course). If your adapter is 
correctly programmed it will reuse that existing view object and just fill 
it with the correct data to display.

However, you may experience update errors while scrolling quickly through 
your listview. There are workarounds possible by using a scroll listener. 
When your listener detects a "fling" that causes fast scrolling, you could 
stop your updates, because they won't be visible anyway. You could also 
generally stop updates while the user is scrolling.

Now to the real question: why is scrolling your list view so slow? Even 
with using notifyDataSetChanged it shouldn't slow down that much because 
ListView only updates the currently visible list items and that's it.

What exactly does your adapter do in getChildView and getGroupView? Does it 
query a database? Does it decode bitmap objects? Does it read data from a 
file?
What does "getUpdateInfo" do?

You should create and update the adapter data only in a background thread. 
The UI thread should not be burdened with anything that might be blocking 
(like network or file I/O, database access, bitmap loading...). Is your 
handler code in your first post invoked on the UI thread? If so, you should 
move this update to a background thread that is continuously running and 
pausing for a second. When the activity is paused that thread should be 
stopped.

On Friday, February 1, 2013 1:37:05 PM UTC-6, saex wrote:
>
> What? where should i put that view? i dont understand you...
>
> the objective is to update one item instead of rebuilding the entire 
> {expandable} list view.
>
> So... what should i do with that view? how can i make that view to be 
> refreshed when i want?
>
> i'm stuck
>
> El viernes, 1 de febrero de 2013 18:19:57 UTC+1, Kostya Vasilyev escribió:
>>
>> And if you can't call getChildView, just copy the code from there to 
>> where you need it.
>>
>> (Can't believe I wrote "copy the code"... will my developer license be 
>> revoked now?)
>>
>> -- K
>>
>> 2013/2/1 skink <[email protected]>
>>
>>>
>>>
>>> saex wrote:
>>> > argggggggggg you didn't understand me. I KNOW HOW TO GET THE VIEW, it 
>>> is
>>> > not the problem, read the full post please
>>> >
>>> >
>>>
>>> i did read the full thread and still i think you should call
>>> getChildView as Kostya suggested
>>>
>>>
>>> pskink
>>>
>>> --
>>> --
>>> 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
>>> ---
>>> You received this message because you are subscribed to the Google 
>>> Groups "Android Developers" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>>

-- 
-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to