android - Listview with downloading Horizontal progress bar strange behaviour -
i have custom adapter in have design custom view list view. in row of custom view have specify 1 button , horizontal progress bar, on click of button start downloading progress. problem occurs when scroll list view. suppose start downloading item @ position 1st (current progress 50%) , scroll last. after scroll , reach 1st @ time 1st record start (progress 0%).
@override public view getview(int position, view convertview, viewgroup parent) { viewholder holder = null; if(convertview == null) { holder = new viewholder(); convertview = layoutinflater.from(context).inflate(r.layout.list_items_aaj_ni_varta,parent, false); holder.txttitle = (textview) convertview.findviewbyid(r.id.txttitle); holder.pbardownloading = (progressbar) convertview.findviewbyid(r.id.pbardownloading); holder.btndownloadorcancel = (imagebutton) convertview.findviewbyid(r.id.btndownloadorcancel); convertview.settag(holder); } else { holder = (viewholder) convertview.gettag(); } holder.txttitle.settext(listvarta.get(position).getvarta_title()); holder.btndownloadorcancel.setonclicklistener(new onclicklistener() { @override public void onclick(view arg0) { /*mydownload custom design download class, * in have specified downloading task */ mydownload d = new mydownload(); d.setcontext(context); d.seturl(url); d.setprogressbar(holder.pbardownloading); d.startdownload(); } }); return convertview; }
the important feature of listview, recycles list items aren't visible preserve memory. so, states of views reset list item recycled.
one possible solution save progress each item in list or other object inside adapter. background download task, can update data. , then, in getview() method, restore progress data object/list.
Comments
Post a Comment