javascript - populate listview from database with json and php -


i'm trying populate listview following tutorial here http://www.learn2crack.com/2013/11/listview-from-json-example.html, data not showing when press getdata button. seems fail pass array php android app using json, need help

edit : able pass value php, unable set value in listview, when run activity, logcat output text :

06-04 09:10:23.844: d/json parser(4058): {"pendaftar":[[{"no_pendaftaran":"ad-15-001","nama_lengkap":"wanda"},{"no_pendaftaran":"ad-15-002","nama_lengkap":"skndje"},{"no_pendaftaran":"ad-15-003","nama_lengkap":"aksn"}]]} 

and edit php code:

 //fetching rows query  	$row = $stmt->fetchall();  	$response["pendaftar"][]= $row;        	echo json_encode($response);

so here's activity display listview :

package subactivity;    import java.util.arraylist;  import java.util.hashmap;    import org.json.jsonarray;  import org.json.jsonexception;  import org.json.jsonobject;    import id.wanda.smkkkristenimmanuelii.jsonparser;  import id.wanda.smkkkristenimmanuelii.r;  import android.app.activity;  import android.app.progressdialog;  import android.os.asynctask;  import android.os.bundle;  import android.view.view;  import android.widget.adapterview;  import android.widget.button;  import android.widget.listadapter;  import android.widget.listview;  import android.widget.simpleadapter;  import android.widget.textview;  import android.widget.toast;    public class seleksinilai extends activity {    	listview list;      textview nopendaftaran;      textview namapendaftar;      button btngetdata;      arraylist<hashmap<string, string>> calonsiswa = new arraylist<hashmap<string, string>>();      jsonparser jparser = new jsonparser();          //url json array      private static string url = "http://192.168.1.110/smkkimmanuel2/seleksinilai.php";         //json node names      private static final string tag_os = "pendaftar";      private static final string tag_no_pendaftaran = "no_pendaftaran";      private static final string tag_nama_lengkap = "nama_lengkap";            jsonarray pendaftar = null;  	  	@override  	protected void oncreate(bundle savedinstancestate) {  		super.oncreate(savedinstancestate);  		setcontentview(r.layout.activity_seleksi_nilai);  		calonsiswa = new arraylist<hashmap<string, string>>();  		           btngetdata = (button)findviewbyid(r.id.getdata);          btngetdata.setonclicklistener(new view.onclicklistener() {                 @override              public void onclick(view view) {                   new getdata().execute();                 }          });  	}    	private class getdata extends asynctask<string, string, jsonobject> {          private progressdialog pdialog;         @override         protected void onpreexecute() {             super.onpreexecute();              nopendaftaran = (textview)findviewbyid(r.id.nopendaftar);              namapendaftar = (textview)findviewbyid(r.id.namapendaftar);             pdialog = new progressdialog(seleksinilai.this);             pdialog.setmessage("getting data ...");             pdialog.setindeterminate(false);             pdialog.setcancelable(true);             pdialog.show();           }           @override         protected jsonobject doinbackground(string... args) {               // getting json url             jsonobject json = jparser.getjsonfromurl(url);             return json;         }          @override          protected void onpostexecute(jsonobject json) {              pdialog.dismiss();              try {                     // getting json array url                     pendaftar = json.getjsonarray(tag_os);                     for(int = 0; < pendaftar.length(); i++){                     jsonobject c = pendaftar.getjsonobject(i);                       // storing  json item in variable                     string ver = c.getstring(tag_no_pendaftaran);                     string name = c.getstring(tag_nama_lengkap);                       // adding value hashmap key => value                       hashmap<string, string> map = new hashmap<string, string>();                       map.put(tag_no_pendaftaran, ver);                     map.put(tag_nama_lengkap, name);                       calonsiswa.add(map);                     list=(listview)findviewbyid(r.id.list);                       listadapter adapter = new simpleadapter(seleksinilai.this, calonsiswa,                             r.layout.single_item_seleksi_nilai,                             new string[] { tag_no_pendaftaran,tag_nama_lengkap }, new int[] {                                     r.id.nopendaftar,r.id.namapendaftar});                       list.setadapter(adapter);                     list.setonitemclicklistener(new adapterview.onitemclicklistener() {    					@override  					public void onitemclick(adapterview<?> parent, view view,  							int position, long id) {  						// todo auto-generated method stub  						toast.maketext(seleksinilai.this, "you clicked @ "+calonsiswa.get(+position).get("name"), toast.length_short).show();  						  					}                     });                       }             } catch (jsonexception e) {                 e.printstacktrace();             }            }     }  }

and here's php code fetch data :

<?php    //load , connect mysql database stuff  require("config.php");        //gets user's info based off of username.      $query = "select no_pendaftaran,nama_lengkap pendaftaran";                  try {          $stmt   = $db->prepare($query);          $stmt->execute();      }      catch (pdoexception $ex) {          // testing, use die , message.           //die("failed run query: " . $ex->getmessage());                    //or use use 1 product json data:          $response["success"] = 0;          $response["message"] = "database error1. please try again!";          die(json_encode($response));                }            //fetching rows query  	$row = $stmt->fetchall();  	$arr['pendaftar'][]= $row;              	$json = json_encode($arr);    	$json_encoded_string = json_encode($arr);  	$json_encoded_string = str_replace("\\/", '/', $json_encoded_string);  	echo $json_encoded_string;    ?> 

php output :

{"pendaftar":[[{"no_pendaftaran":"ad-15-001","nama_lengkap":"wanda"}]]}  

i able show array on listview, problem remain in php code here:

//fetching rows query  	$row = $stmt->fetchall();        //here, problem bracket []  	$response["pendaftar"][]= $row;    //here    	echo json_encode($response);

all need remove bracket, figure out seeing else array output, php output this, there double brackets [] :

{"pendaftar":[[{"no_pendaftaran":"ad-15-001","nama_lengkap":"wanda"},{"no_pendaftaran":"ad-15-002","nama_lengkap":"skndje"},{"no_pendaftaran":"ad-15-003","nama_lengkap":"aksn"}]]} 

while other got 1 bracket, i'm not sure reason, problem solved, myself.


Comments