android - How to put Json data in spinners from URL? -
i getting json in text box tried put data in spinner unable so. below main activity class , using volley.
public class mainactivity extends activity { private string urljsonarry = "https://www.abc.json"; private static string tag = mainactivity.class.getsimplename(); private button btnmakearrayrequest; // progress dialog private progressdialog pdialog; private textview txtresponse,txtresponse2,txtresponse3,txtresponse4; // temporary string show parsed response private string jsonresponse, jsonresponse2, jsonresponse3, jsonresponse4; spinner spinner; arrayadapter<string> adapter; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.spinners); spinner= (spinner) findviewbyid(r.id.spinner); btnmakearrayrequest = (button) findviewbyid(r.id.btnarrayrequest); txtresponse = (textview) findviewbyid(r.id.txtresponse); txtresponse2 = (textview) findviewbyid(r.id.txtresponse2); txtresponse3 = (textview) findviewbyid(r.id.txtresponse3); // txtresponse4 = (textview) findviewbyid(r.id.txtresponse4); pdialog = new progressdialog(this); pdialog.setmessage("please wait..."); pdialog.setcancelable(false); btnmakearrayrequest.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { // making json array request makejsonarrayrequest(); } }); } private void makejsonarrayrequest () { showpdialog(); jsonobjectrequest req = new jsonobjectrequest(urljsonarry, new response.listener<jsonobject>() { @override public void onresponse(jsonobject response) { log.d(tag, response.tostring()); try { jsonarray array = response.getjsonarray("results"); // parsing json array response // loop through each json object jsonresponse = ""; (int = 0; < array.length(); i++) { jsonobject person = (jsonobject) array .get(i); system.out.println(person.tostring()); string syllabus = person.getstring("grade"); string grade = person.getstring("grade"); string subject = person.getstring("subject"); jsonresponse += "board: " + syllabus + "\n\n"; jsonresponse2 += "class: " + grade + "\n\n"; jsonresponse3 += "subject: " + subject + "\n\n"; // jsonresponse4 += "id: " + id + "\n\n"; //getting compile time error here adapter= new arrayadapter<string>(this, android.r.layout.simple_spinner_item,array); adapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); spinner.setadapter(adapter);} txtresponse.settext(jsonresponse); txtresponse2.settext(jsonresponse2); txtresponse3.settext(jsonresponse3); //txtresponse4.settext(jsonresponse4); } catch (jsonexception e) { e.printstacktrace(); toast.maketext(getapplicationcontext(), "error: " + e.getmessage(), toast.length_long).show(); } hidepdialog(); } }, new response.errorlistener() { @override public void onerrorresponse(volleyerror error) { volleylog.d(tag, "error: " + error.getmessage()); toast.maketext(getapplicationcontext(), error.getmessage(), toast.length_short).show(); hidepdialog(); } });
you need use activity context this
not activity context try this
adapter= new arrayadapter<string>(mainactivity.this, android.r.layout.simple_spinner_item, array);
edit :
change array format. example in spinner going show subject following
string[] mysubject = new string[array.length()]; (int = 0; < array.length(); i++) { jsonobject person = (jsonobject) array .get(i); system.out.println(person.tostring()); string syllabus = person.getstring("grade"); string grade = person.getstring("grade"); string subject = person.getstring("subject"); jsonresponse += "board: " + syllabus + "\n\n"; jsonresponse2 += "class: " + grade + "\n\n"; jsonresponse3 += "subject: " + subject + "\n\n"; // jsonresponse4 += "id: " + id + "\n\n"; mysubject[i] = subject; } adapter= new arrayadapter<string>(this, android.r.layout.simple_spinner_item, mysubject); adapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); spinner.setadapter(adapter);
note : need move set adapter outside of loop.
Comments
Post a Comment