android - Personalized Listview error on set background color -


i have problem in app: use listview personalized adapter, in adapter want change color of line depending on whether message read or not.

in metod getview control variable, if equal 0 want change background color.

all works , list displayed want,

but when there lot of elements , list scrolled in direction (from top bottom , vice versa) raws displeyed same color if code set color.

has ever had same problem? can advise me it?

there code of adapter:

public class lazyadaptercomunicazioni extends baseadapter {      private activity activity;     private string[] id;     private string[] titolo;     private string[] data;     private string[] letto;     private static layoutinflater inflater=null;     //public imageloader imageloader;       public lazyadaptercomunicazioni(activity a, string[] idcom, string[] titolocom,      string[] datacom, string[]lettocom) {         activity = a;         id = idcom;         titolo = titolocom;         data = datacom;         letto = lettocom;         inflater = (layoutinflater)activity.getsystemservice(context.layout_inflater_service);     }      @override     public int getcount() {         return id.length;     }      @override     public object getitem(int position) {         return position;     }      @override     public long getitemid(int position) {         return position;     }      @override     public view getview(int position, view convertview, viewgroup parent) {          view vi = convertview;          if(convertview == null)         {             vi = inflater.inflate(r.layout.comunicazionicslist, null);         }          contactsviewholder viewholder = new contactsviewholder();          //settimane         viewholder.txttitolo=(textview)vi.findviewbyid(r.id.comcs_titolo);         viewholder.txttitolo.settext(titolo[position].tostring());          //data         viewholder.txtdata=(textview)vi.findviewbyid(r.id.comcs_data);         viewholder.txtdata.settext(data[position].tostring());          //id         viewholder.txtid=(textview)vi.findviewbyid(r.id.comcs_id);         viewholder.txtid.settext(id[position].tostring());          //connessianne e apretura del db         string read = letto[position].tostring();          if (read.equals("0")) //da leggere         {             //layout             viewholder.rel = (relativelayout)vi.findviewbyid(r.id.comcs_riga);              viewholder.rel.setbackgroundresource(r.drawable.sfondorigacomcs);             viewholder.txttitolo.settextcolor(color.white);         }             return vi;     }      static class contactsviewholder {         textview txttitolo;         textview txtdata;         textview txtid;         relativelayout rel;     } } 

and xml of single row:

<?xml version="1.0" encoding="utf-8"?> <relativelayout     android:id="@+id/comcs_riga"     xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:orientation="vertical"      android:background="#ffffff"     android:paddingtop="10dp"     android:paddingbottom="10dp"     >      <textview         android:id="@+id/comcs_data"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text=""         android:textcolor="#000000"         android:layout_alignparentleft="true"         android:layout_marginleft="16dp"         android:textsize="12sp"         />      <textview         android:id="@+id/comcs_id"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_torightof="@+id/comcs_data"         android:visibility="invisible"         />      <textview         android:id="@+id/comcs_titolo"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_below="@+id/comcs_data"         android:layout_margintop="2dp"         android:layout_marginleft="16dp"         android:text=""         android:textcolor="#357cbc"         android:textsize="18sp"          />      <imageview          android:id="@+id/feedbackcars_positivo"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:src="@drawable/frecciacom"         android:contentdescription="@string/title_comunicazioni"         android:layout_alignparentright="true"         android:layout_margintop="2dp"         android:layout_marginright="16dp"         />  </relativelayout> 

it's common error. views recycled have set default values in cases.

    if (read.equals("0")) //da leggere     {         //layout         viewholder.rel = (relativelayout)vi.findviewbyid(r.id.comcs_riga);          viewholder.rel.setbackgroundresource(r.drawable.sfondorigacomcs);         viewholder.txttitolo.settextcolor(color.white);     }       else {         viewholder.rel.setbackgroundresource("you_defaulf_bg_res");    } 

Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

c++ - Clear the memory after returning a vector in a function -

erlang - Saving a digraph to mnesia is hindered because of its side-effects -