i want show multiple progress bar in whats app while uploading or downloading images or videos. , progress completed bi hide progress bar.
i tried using async task not getting exact solution , used delegates. not getting exact solution.
here code
main activity
public class mainactivity extends actionbaractivity { private listview mlistview; private arraylist<string> alst; private int count = 0; private myadapter adapter; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); mlistview = (listview) findviewbyid(r.id.listview1); alst = new arraylist<string>(); adapter = new myadapter(this, r.layout.activity_main, alst); mlistview.setadapter(adapter); } public void onclick(view v) { count++; alst.add("" + count); adapter.notifydatasetchanged(); } }
here adapter
public class myadapter extends arrayadapter<string> { private context mcontext; public viewholder viewholder; public myadapter(context context, int resource, list<string> objects) { super(context, resource, objects); mcontext = context; } private class viewholder { progressbar progressbar; } @override public view getview(int position, view convertview, viewgroup parent) { viewholder = null; if (convertview == null) { layoutinflater inflater = (layoutinflater) mcontext .getsystemservice(context.layout_inflater_service); convertview = inflater.inflate(r.layout.adapter, parent, false); viewholder = new viewholder(); viewholder.progressbar = (progressbar) convertview .findviewbyid(r.id.progressbar1); viewholder.progressbar.getindeterminatedrawable().setcolorfilter( mcontext.getresources().getcolor(r.color.actionbar), android.graphics.porterduff.mode.multiply); viewholder.progressbar.setvisibility(view.visible); convertview.settag(viewholder); } viewholder = (viewholder) convertview.gettag(); textview textview = (textview) convertview.findviewbyid(r.id.textview1); textview.settext(getitem(position)); new downloadasynctask().execute(viewholder); return convertview; } public class downloadasynctask extends asynctask<viewholder, void, viewholder> { @override protected viewholder doinbackground(viewholder... params) { viewholder viewholder = params[0]; (int = 0; < 2500; i++) { system.out.println(i); } return viewholder; } @override protected void onpostexecute(viewholder result) { result.progressbar.setvisibility(view.gone); } } }
and here progresses
let me know valuable solution or there library beneficial it
i'n not sure mean "exact solution", viewing code see you're trying set progress asynctask. however, can update views ui thread, not directly within asynctask, separate thread.
however, asynctask provides method publishprocess() can use perform such actions on ui thread (like calling function updates progress bar) while doinbackground working in separate thread. check this example.
you might need interface call function in main thread asynctask. hope helps!
Comments
Post a Comment