android - AsyncTas Implementation ListView -


how use asynctask show listview json how put

onpreexecute()

onpostexecute()

doinbackground()

onprogressupdate()

mainactivity.java

list = (listview) activity.findviewbyid(r.id.listview1);         arraylist<hashmap<string, string>> followinglist = new arraylist<hashmap<string, string>>();          // creating json parser instance         jsonparser jparser = new jsonparser();          // getting json string url         jsonobject json = jparser.getjsonfromurl(url);          try {             // getting array of following             following = json.getjsonarray(key_following);              // looping through following             for(int = 0; < following.length(); i++){                 jsonobject c = following.getjsonobject(i);                  // storing each json item in variable                 string nama = c.getstring(key_nama);                 string instansi = c.getstring(key_instansi);                 string status = c.getstring(key_status);                  // creating new hashmap                 hashmap<string, string> map = new hashmap<string, string>();                  // adding each child node hashmap key => value                 map.put(key_nama, nama);                 map.put(key_instansi, instansi);                 map.put(key_status, status);                 // adding hashlist arraylist                 followinglist.add(map);              }         } catch (jsonexception e) {             e.printstacktrace();         }           // getting adapter passing xml data arraylist         adapter1=new lazyadapter(this, followinglist);         list.setadapter(adapter1); 

how implementation asycntask show list view?

dashboardtask

package net.drieanto.lagidimana;  import net.drieanto.lagidimana.library.databasehandler; import net.drieanto.lagidimana.library.jsonparser; import net.drieanto.lagidimana.library.userfunctions;  import org.json.jsonarray; import org.json.jsonexception; import org.json.jsonobject;  import android.app.progressdialog; import android.content.context; import android.content.intent; import android.os.asynctask; import android.util.log; import android.widget.listview; import android.widget.toast;  import java.util.arraylist; import java.util.hashmap;  public class dashboardtask extends asynctask<string, void, integer> {      private progressdialog progressdialog;     private dashboardactivity activity;      listview list1;     lazyadapter adapter1;     private listview list;      // static variables     static final string url = "http://git.drieanto.net/lagidimanaapi/index.php/user/get_following/xx3";     // json node keys     private int responsecode = 0;     static final string key_following = "following";     static final string key_nama = "nama"; // parent node     static final string key_instansi = "instansi";     static final string key_status = "status";     private static string key_success = "success";     private static string key_error = "error";      // following jsonarray     jsonarray following = null;      public dashboardtask(dashboardactivity activity,             progressdialog progressdialog) {         this.activity = activity;         this.progressdialog = progressdialog;     }      @override     protected void onpreexecute() {         progressdialog.show();     }      @override     protected integer doinbackground(string... arg0) {         // check login response         // creating json parser instance         jsonparser jparser = new jsonparser();          // getting json string url         jsonobject json = jparser.getjsonfromurl(url);         try {             if (json.getstring(key_success) != null) {                 string res = json.getstring(key_success);                  if (integer.parseint(res) == 1) {                     responsecode = 1;                  } else {                     responsecode = 0;                     // error in login                 }             }          } catch (nullpointerexception e) {             e.printstacktrace();          } catch (jsonexception e) {             e.printstacktrace();         }          return responsecode;     }      @override     protected void onpostexecute(integer responsecode) {         if (responsecode == 1) {             progressdialog.dismiss();             arraylist<hashmap<string, string>> followinglist = new arraylist<hashmap<string, string>>();              // creating json parser instance             jsonparser jparser = new jsonparser();              // getting json string url             jsonobject json = jparser.getjsonfromurl(url);              try {                 // getting array of following                 following = json.getjsonarray(key_following);                  // looping through following                 (int = 0; < following.length(); i++) {                     jsonobject c = following.getjsonobject(i);                      // storing each json item in variable                     string nama = c.getstring(key_nama);                     string instansi = c.getstring(key_instansi);                     string status = c.getstring(key_status);                      // creating new hashmap                     hashmap<string, string> map = new hashmap<string, string>();                      // adding each child node hashmap key => value                     map.put(key_nama, nama);                     map.put(key_instansi, instansi);                     map.put(key_status, status);                     // adding hashlist arraylist                     followinglist.add(map);                  }             } catch (jsonexception e) {                 e.printstacktrace();             }              // getting adapter passing xml data arraylist             adapter1 = new lazyadapter(activity, followinglist);             list.setadapter(adapter1);         } else {             progressdialog.dismiss();             activity.showdashboarderror(responsecode);          }      }  } 

but contain error whats wrong?

you can use following

    progressdialog pd;      lazyadapter adapter1;       listview list;      string url;      hashmap<string, string> map = new hashmap<string, string>();     arraylist<hashmap<string, string>> followinglist = new arraylist<hashmap<string, string>>(); 

in activity oncreate()

    setcontentview(r.layout.activity_main);     list = (listview)findviewbyid(r.id.listview1);         pd = new progressdialog(activityname.this);     pd.settitle("processing...");      url ="your url";       new thetask().execute(); 

define asynctask inner class in activity class

    class extends asynctask<void,void,void>     {     @override     protected void onpreexecute() {     super.onpreexecute();     pd.show();      }     @override     protected void doinbackground(void... params) {              // creating json parser instance     jsonparser jparser = new jsonparser();      // getting json string url     jsonobject json = jparser.getjsonfromurl(url);      try {         // getting array of following         following = json.getjsonarray(key_following);          // looping through following         for(int = 0; < following.length(); i++){             jsonobject c = following.getjsonobject(i);              // storing each json item in variable             string nama = c.getstring(key_nama);             string instansi = c.getstring(key_instansi);             string status = c.getstring(key_status)              // adding each child node hashmap key => value             map.put(key_nama, nama);             map.put(key_instansi, instansi);             map.put(key_status, status);             // adding hashlist arraylist             followinglist.add(map);          }     } catch (jsonexception e) {         e.printstacktrace();     }      return null;    }     @override    protected void onpostexecute(void result) {     super.onpostexecute(result);     pd.dismiss();     adapter1=new lazyadapter(activityname.this, followinglist);     list.setadapter(adapter1);   }     }  

exaplanation

asynctask invoked on ui thread.

onpreexecute() invoked on ui thread. display progress dialog

doinbackground() invoked on background thread. operation. not update ui here

onpostexecute() invoked on ui thread. dismiss dialog , update ui here.

for more info check doc

http://developer.android.com/reference/android/os/asynctask.html


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -