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
Post a Comment