Android Volley Display JSON Data -
okay have simple app display data json..unfortunatelly everytime run app, closed immediately.
i have working fine api in server
<?php if($_server['request_method']=='get'){ mysql_connect("localhost","k4371034_android","android123"); mysql_select_db("k4371034_android"); switch($_get['case']){ case 'sekolah': $sql = "select * lokasi_checkin"; $r = mysql_query($sql); $return_arr = array(); while($row = mysql_fetch_array($r)){ $row_array['id'] = $row['id']; $row_array['image'] = $row['image']; $row_array['nama'] = $row['nama']; $row_array['long'] = $row['long']; $row_array['lat'] = $row['lat']; array_push($return_arr,$row_array); } echo json_encode($return_arr); die(); break; case 'user': $sql = "select * user"; $r = mysql_query($sql); $return_arr = array(); while($row = mysql_fetch_array($r)){ $row_array['id'] = $row['id']; $row_array['user'] = $row['user']; $row_array['image'] = $row['image']; array_push($return_arr,$row_array); } echo json_encode($return_arr); die(); break; } }
it output fine.
in java itself.
public class mainactivity extends appcompatactivity { // log tag private static final string tag = mainactivity.class.getsimplename(); // movies json url private static final string url = "http://www.lineitopkal.com/android/api.php?case=user"; private progressdialog pdialog; private list<school> schoollist = new arraylist<school>(); private listview listview; private customlistadapter adapter; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); listview = (listview) findviewbyid(r.id.list); adapter = new customlistadapter(this, schoollist); listview.setadapter(adapter); pdialog = new progressdialog(this); // showing progress dialog before making http request pdialog.setmessage("loading..."); pdialog.show(); //creating volley request obj jsonarrayrequest schoolreq = new jsonarrayrequest(url, new response.listener<jsonarray>() { @override public void onresponse(jsonarray response) { log.d(tag, response.tostring()); hidepdialog(); // parsing json (int = 0; < response.length(); i++) { try { jsonobject obj = response.getjsonobject(i); school school = new school(); school.setthumbnailurl(obj.getstring("image")); school.setname(obj.getstring("user")); // adding school school array schoollist.add(school); } catch (jsonexception e) { e.printstacktrace(); } } // notifying list adapter data changes // renders list view updated data adapter.notifydatasetchanged(); } }, new response.errorlistener() { @override public void onerrorresponse(volleyerror error) { volleylog.d(tag, "error: " + error.getmessage()); hidepdialog(); } }); // adding request request queue appcontroller.getinstance().addtorequestqueue(schoolreq); } @override public void ondestroy() { super.ondestroy(); hidepdialog(); } private void hidepdialog() { if (pdialog != null) { pdialog.dismiss(); pdialog = null; } } @override public boolean oncreateoptionsmenu(menu menu) { return true; } }
cannot see cause problem cuz android studio didn't tell problem is....it showed nothing in logcat.
any answer appreciated. thank u
edit
okay turns out problem comes appcontroller class...which giving null pointer exception.
the syntax
public class appcontroller extends application { public static final string tag = appcontroller.class.getsimplename(); private requestqueue mrequestqueue; private imageloader mimageloader; private static appcontroller minstance; @override public void oncreate() { super.oncreate(); minstance = this; } public static synchronized appcontroller getinstance() { return minstance; } public requestqueue getrequestqueue() { if (mrequestqueue == null) { mrequestqueue = volley.newrequestqueue(getapplicationcontext()); } return mrequestqueue; } public imageloader getimageloader() { getrequestqueue(); if (mimageloader == null) { mimageloader = new imageloader(this.mrequestqueue, new lrubitmapcache()); } return this.mimageloader; } public <t> void addtorequestqueue(request<t> req, string tag) { // set default tag if tag empty req.settag(textutils.isempty(tag) ? tag : tag); getrequestqueue().add(req); } public <t> void addtorequestqueue(request<t> req) { req.settag(tag); getrequestqueue().add(req); } public void cancelpendingrequests(object tag) { if (mrequestqueue != null) { mrequestqueue.cancelall(tag); } } }
use php code bellow..
$sql = "select * user"; $result = $con->query($sql); //$con database connection $response_arr = array(); if ($result->num_rows > 0) { $userdetails = array(); while ($row = $result->fetch_assoc()) { // $response["id"] = $row["id"]; $userdata[] = array( "id" => $row["id"], "user" => $row["user"], ); } } else { echo "0 results"; } $result1['usernodes'] = $userdata; $json = json_encode($result1); echo $json;
volley code use
private void dologinaction() { pdialog.show(); string url_login = "http://www.lineitopkal.com/android/api.php?case=user"; stringrequest stringrequest = new stringrequest(request.method.post, url_login, new response.listener<string>() { @override public void onresponse(string response) { //pdialog.dismiss(); try { jsonobject jsonobject = new jsonobject(response); jsonarray loginnodes = jsonobject.getjsonarray("usernodes"); (int = 0; < loginnodes.length(); i++) { jsonobject jo = loginnodes.getjsonobject(i); string id = jo.getstring("id"); log.e("id ::",id); string user = jo.getstring("user"); log.e("user ::",user); } } catch (jsonexception e) { e.printstacktrace(); } } }, new response.errorlistener() { @override public void onerrorresponse(volleyerror error) { pdialog.dismiss(); try { if (error instanceof timeouterror ) { //time out error }else if(error instanceof noconnectionerror){ //net work error } else if (error instanceof authfailureerror) { //error } else if (error instanceof servererror) { //erroor } else if (error instanceof networkerror) { //error } else if (error instanceof parseerror) { //error }else{ //error } //end } catch (exception e) { } } }) { @override protected map<string, string> getparams() { map<string, string> params = new hashmap<>(); //post parameter bellow params.put("uname", "era@gmail.com"); params.put("pass", "123456"); return params; } }; requestqueue requestqueue = volley.newrequestqueue(this); requestqueue.add(stringrequest); }
Comments
Post a Comment