I have a problem with bindView() that has me puzzled. I am using it to
customize each row, including setting icons, coloring the background
and setting up listeners for buttons. It mostly works as expected, but
not quite.

When I fill the ListView with SimpleCursorAdapter, I get multiple
calls to bindView() for position 0, but only 1 call for the other
rows. The problem is that when all is said and done, I have 2 rows
(LinearLayout) created for position 0. Here is a sample log extract:

10-22 23:25:02.834: DEBUG/PAproto(1042): LBV: pos:0 icon:1
view:android.widget.linearlay...@437e13c0
10-22 23:25:02.834: DEBUG/PAproto(1042): LBV: pos:0 icon:1
view:android.widget.linearlay...@437e13c0
10-22 23:25:02.844: DEBUG/PAproto(1042): LBV: pos:0 icon:1
view:android.widget.linearlay...@437e13c0
10-22 23:25:02.853: DEBUG/PAproto(1042): LBV: pos:0 icon:1
view:android.widget.linearlay...@437e13c0
10-22 23:25:02.864: DEBUG/PAproto(1042): LBV: pos:0 icon:1
view:android.widget.linearlay...@437e13c0
10-22 23:25:02.934: DEBUG/PAproto(1042): LBV: pos:0 icon:1
view:android.widget.linearlay...@437e13c0
10-22 23:25:02.997: DEBUG/PAproto(1042): LBV: pos:1 icon:2
view:android.widget.linearlay...@437e4810
10-22 23:25:03.024: DEBUG/PAproto(1042): LBV: pos:2 icon:3
view:android.widget.linearlay...@437e67a8
10-22 23:25:03.054: DEBUG/PAproto(1042): LBV: pos:3 icon:4
view:android.widget.linearlay...@437e8700
10-22 23:25:03.093: DEBUG/PAproto(1042): LBV: pos:4 icon:5
view:android.widget.linearlay...@437ea660
10-22 23:25:03.234: DEBUG/PAproto(1042): LBV: pos:0 icon:1
view:android.widget.linearlay...@437ecf40
10-22 23:25:03.243: DEBUG/PAproto(1042): LBV: pos:0 icon:1
view:android.widget.linearlay...@437ecf40
10-22 23:25:03.243: DEBUG/PAproto(1042): LBV: pos:0 icon:1
view:android.widget.linearlay...@437ecf40
10-22 23:25:03.254: DEBUG/PAproto(1042): LBV: pos:0 icon:1
view:android.widget.linearlay...@437ecf40
10-22 23:25:03.264: DEBUG/PAproto(1042): LBV: pos:0 icon:1
view:android.widget.linearlay...@437ecf40

I use a view holder class to hold the view, position and other data so
that when a button is clicked, I can retrieve the holder with
view.getParent.getTag(). This all works fine. The problem is that
there are two views for position 0, but it's the first one in the
above logcat that seems to be displayed. My code which acts on the
rows when a button is clicked (especially setting background color)
does not reliably hit the position 0 row that is actually displayed.

I can see what's happening but I am at a loss about what to do about
it. Why are two view created for position 0? Is it something that I
can control? How? If not, how should I deal with it so that the
results when I modify the views are predictable? Thanks!
--~--~---------~--~----~------------~-------~--~----~
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