Android ListView "recycle" doesn't store rows which are not visible initially -
there maybe thousands of posts around web listview , listadapter recycle process couldn't solve problem far.
i have custom listview rows , populate items inside rows (textviews, imageviews, etc.) data remote server. screen can show 5 rows maximum @ time , have scroll if have more rows. problem is; adapter stores , recycles first 5 rows' information , if scroll see 6th, 7th, 8th, etc. rows see same 5 rows again , again @ random positions.
here code:
public class listadapter extends baseadapter { private arraylist<string> id, name, address; private context context; public listadapter(context c, arraylist<string> id, arraylist<string> name, arraylist<string> address,) { this.id = id; this.name = name; this.address = address; this.context = c; } @override public int getcount() { return id.size(); } @override public object getitem(int position) { return id.get(position); } @override public long getitemid(int id) { return id; } @override public view getview(final int position, view convertview, viewgroup parent) { view rowslayout; if (convertview == null) { rowslayout = (view)layoutinflater.from(context) .inflate(r.layout.list_item, null); //assign values textviews in here } else { rowslayout = convertview; } return rowslayout; } }
i tried using method in this website didn't help.
if can offer me solution (with code please) or direct me post grateful.
change code this:
@override public view getview(final int position, view convertview, viewgroup parent) { view rowslayout; if (convertview == null) { rowslayout = (view)layoutinflater.from(context) .inflate(r.layout.servisler_list_item, null); //assign values textviews in here } else { rowslayout = convertview; } return servisrowslayout; }
to this:
@override public view getview(final int position, view convertview, viewgroup parent) { view rowslayout; if (convertview == null) { rowslayout = (view)layoutinflater.from(context) .inflate(r.layout.servisler_list_item, null); } else { rowslayout = convertview; } //assign values textviews in here return servisrowslayout; }
you need "assign values textviews" on every getview()
call, not of them.
Comments
Post a Comment