this is a cross-post from SO . haven't got much attention over there
so I am posting it here. orig here:

http://stackoverflow.com/questions/2618272/custom-listview-adapter-getview-method-being-called-multiple-times-and-in-no-coh

----------------------------------------------------------------------------------

I have a custom list adapter:

class ResultsListAdapter extends ArrayAdapter<RecordItem> {

in the overridden 'getView' method I do a print to check what position
is and whether it is a convertView or not:

    @Override
    public View getView(int position, View convertView, ViewGroup
parent) {
        System.out.println("getView " + position + " " + convertView);

The output of this (when the list is first displayed, no user input as
yet)

04-11 16:24:05.860: INFO/System.out(681): getView 0 null
04-11 16:24:29.020: INFO/System.out(681): getView 1
android.widget.relativelay...@43d415d8
04-11 16:25:48.070: INFO/System.out(681): getView 2
android.widget.relativelay...@43d415d8
04-11 16:25:49.110: INFO/System.out(681): getView 3
android.widget.relativelay...@43d415d8
04-11 16:25:49.710: INFO/System.out(681): getView 0
android.widget.relativelay...@43d415d8
04-11 16:25:50.251: INFO/System.out(681): getView 1 null
04-11 16:26:01.300: INFO/System.out(681): getView 2 null
04-11 16:26:02.020: INFO/System.out(681): getView 3 null
04-11 16:28:28.091: INFO/System.out(681): getView 0 null
04-11 16:37:46.180: INFO/System.out(681): getView 1
android.widget.relativelay...@43cff8f0
04-11 16:37:47.091: INFO/System.out(681): getView 2
android.widget.relativelay...@43cff8f0
04-11 16:37:47.730: INFO/System.out(681): getView 3
android.widget.relativelay...@43cff8f0

AFAIK, though I couldn't find it stated explicitly, getView() is only
called for visible rows. Since my app starts with four visible rows at
least the position numbers cycling from 0-3 makes sense. But the rest
is a mess:

    * Why is getview called for each row three times?
    * Where are these convertViews coming from when I haven't scrolled
yet?

I did a bit of reseach, and without getting a good answer, I did
notice that people were associating this issue with layout issues. So
in case, here's the layout that contains the list:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/
android"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:orientation="vertical" >

    <TextView android:id="@+id/pageDetails"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <ListView android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:drawSelectorOnTop="false" />

</LinearLayout>

and the layout of each individual row:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/
android"
android:layout_width="fill_parent"
android:layout_height="108dp"
android:padding="4dp">

<ImageView
    android:id="@+id/thumb"
    android:layout_width="120dp"
    android:layout_height="fill_parent"
    android:layout_alignParentTop="true"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_marginRight="8dp"
    android:src="@drawable/loading" />

<TextView
    android:id="@+id/price"
    android:layout_width="wrap_content"
    android:layout_height="18dp"
    android:layout_toRightOf="@id/thumb"
    android:layout_alignParentBottom="true"
    android:singleLine="true" />

<TextView
    android:id="@+id/date"
    android:layout_width="wrap_content"
    android:layout_height="18dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:paddingRight="4dp"
    android:singleLine="true" />

<TextView
    android:id="@+id/title"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="17dp"
    android:layout_toRightOf="@id/thumb"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:paddingRight="4dp"
    android:layout_alignWithParentIfMissing="true"
    android:gravity="center" />

</RelativeLayout>

Thank you for your time


-- 
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

To unsubscribe, reply using "remove me" as the subject.

Reply via email to