A nice post describing that is here
http://lucasr.org/2012/04/05/performance-tips-for-androids-listview/  With
an example of what is called a view holder to have a performance
improvement.
Also in the Google IO 2010 it is well explain from the developer itself
http://www.youtube.com/watch?v=wDBM6wVEO70


On Sat, Jul 28, 2012 at 2:41 PM, bob <[email protected]> wrote:

> Interesting…  I usually just create a new View every time in getView…  so
> I've never run into that.
>
>
>
> On Saturday, July 28, 2012 6:10:50 AM UTC-5, Sergio Panico wrote:
>>
>> Hi all,
>> I thank all for your answers.
>>
>> I've understood the "strange" behaviour that doesn't makes my ListView to
>> refreshes correctly.
>>
>> Here is the link where I've found the solution:
>> https://groups.google.com/**forum/?fromgroups#!topic/**
>> android-developers/2Ub4yhyKumM<https://groups.google.com/forum/?fromgroups#!topic/android-developers/2Ub4yhyKumM>
>>
>> This topic clearly explains that, when the callback method "getView" is
>> called, the parameter "convertView" is null only when ListView tries to
>> draw the first 5 items, from "A" to "E". When I scroll down the content of
>> the list, and the ListView draws the items 6 and 7, it "reuses" the views
>> previoulsy created, hence "convertView" is not null and my getView
>> implementation goes into "else" branch.
>>
>> What I've missed was to bind the "old" view, with the "new" model item
>> getting showed. So the fix was simply to add, in this branch, the update of
>> the bind between "recycled" view and model item.
>>
>> HTH
>> Sergio
>>
>>
>>
>> Il giorno giovedì 26 luglio 2012 12:59:05 UTC+2, Sergio Panico ha scritto:
>>>
>>> Hi all,
>>> I need your help to understand the refresh behaviour of a ListView where
>>> I've defined a my custom view for the ListView's items.
>>>
>>> I think It's better explain it with an example:
>>> my adapter contains 7 items: A, B, C, D, E, F, G correctly initialized,
>>> filled and working. The associated ListView shows 5 (out of 7) items: A, B,
>>> C, D, E.
>>> The problem is that, when I scroll down the ListView's content instead
>>> of showing me items F and G, I've got A and B items again. I understood
>>> that this is "only" a viewing issue becouse the model elements associated
>>> with the last two items, correctly belong to F and G items. :|
>>>
>>> Following the ovveride of getView(...) method of my adapter (extending
>>> BaseAdapter):
>>>
>>> @Override
>>>     public View getView(int position, View convertView, ViewGroup
>>> parent) {
>>>         MyItemView miv = (( MyItemView  ) convertView);
>>>
>>>         if (context == null) return null;
>>>
>>>         if (convertView == null) {
>>>             miv = new MyItemView (........);
>>>             .....
>>>         } else {
>>>             miv.refreshView(); //refresh the view content
>>>         }
>>>
>>>         return miv;
>>>     }
>>>
>>> and the refreshView() method of MyItemView (extending LinearLayout):
>>>
>>> @Override
>>>     public void refreshView() {
>>>         label1.setText(......);
>>>         label2.setText(......);
>>>         label2.setText(......);
>>>
>>>         invalidate();
>>>     }
>>>
>>> Thanks a lot to all!
>>> Bye
>>> Sergio
>>>
>>  --
> 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 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