android - Progress Dialog should spin till loading of gridview completed -
i working on 1 android app in want display progress dialog till loading of gridview completed. problem progress dialog spin intial time. stops spinning.
here code.
public class allsites extends activity { private final string url_select = "http://api.stackexchange.com/2.1/sites?filter=!rgb_y51.*-(yx"; private gridview gview; private listviewcustomadapter adapter; private arraylist<object> itemlist = new arraylist<object>(); private itembean bean; @override protected void oncreate(bundle savedinstancestate) { // todo auto-generated method stub super.oncreate(savedinstancestate); setcontentview(r.layout.allsites); //gridview gridview = (gridview) findviewbyid(r.id.gvallsites); gview = (gridview) findviewbyid(r.id.gvallsites); new task().execute(); } private class task extends asynctask<void, void, gzipinputstream> { private progressdialog progress; @override protected void onpreexecute() { progress = progressdialog.show(allsites.this, "loading", "please wait..."); } @override protected gzipinputstream doinbackground(void... params) { serverdata httpclient = new serverdata(); gzipinputstream zis = httpclient.getserverdata(url_select); return zis; } @override protected void onpostexecute(gzipinputstream zis) { parsejson(zis); if(progress!=null && progress.isshowing()==true) progress.dismiss(); } } private void parsejson(gzipinputstream zis) { gson gson = new gson(); reader reader = new inputstreamreader(zis); sites response = gson.fromjson(reader, sites.class); list<items> items = response.getitems(); (items site : items) { //toast.maketext(allsites.this, site.getapi_site_parameter().tostring(), toast.length_short).show(); addobjecttolist(site.geticon_url(),site.getname()); } adapter = new listviewcustomadapter(this, itemlist); gview.setadapter(adapter); } public void addobjecttolist(string imageurl, string title) { bean = new itembean(); try { bitmap bitmap = bitmapfactory.decodestream((inputstream)new url(imageurl).getcontent()); bean.setimage(bitmap); } catch (malformedurlexception e) { // todo auto-generated catch block e.printstacktrace(); } catch (ioexception e) { // todo auto-generated catch block e.printstacktrace(); } bean.settitle(title); itemlist.add(bean); } }
please give me suggestion how can make progress dialog spinning till gridview loaded.
move parsejson function doinbackground event
@override protected boolean doinbackground(void... params) { serverdata httpclient = new serverdata(); gzipinputstream zis = httpclient.getserverdata(url_select); parsejson(zis); return true; } @override protected void onpostexecute(boolean zis) { progress.dismiss(); }
Comments
Post a Comment