android - Passing data between activities problems -
in project, using volley library data, , based on data adding buttons, buttons displayed correctly problem opening activity not working:
requestqueue requestqueue; textview txt; final int my_req_code = 12345; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_categories); final gridlayout layout = (gridlayout) findviewbyid(r.id.layout); requestqueue = volley.newrequestqueue(this.getapplicationcontext()); jsonobjectrequest jsonobjectrequest = new jsonobjectrequest(request.method.get, "url", null, new response.listener<jsonobject>() { @override public void onresponse(jsonobject response) { try { jsonobject jsonanswer = response.getjsonobject("answer"); final string[] name=new string[9]; txt = (textview) findviewbyid(r.id.name); jsonarray result = jsonanswer.getjsonarray("result"); (int i=0;i<jsonarrayresult.length();i++){ jsonobject objresp = result.getjsonobject(i); string name= objresp.getstring("name"); name[i] = name; } (int i=0;i<titles.length;i++){ button btn = new button(getapplicationcontext()); btn.settext(titles[i]); layout.addview(btn); btn.setonclicklistener(getproducts); btn.settag(titles[i]); } } catch (jsonexception e) { e.printstacktrace(); } } }, new response.errorlistener() { @override public void onerrorresponse(volleyerror error) { log.e("volley", "error"); } } ); requestqueue.add(jsonobjectrequest); } view.onclicklistener getproducts = new view.onclicklistener() { @override public void onclick(view v) { object tag = v.gettag(); intent intent = new intent(getapplicationcontext(), otheractivity.class); intent.putextra("name", tag.tostring()); startactivity(intent); } }; @override protected void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); if(requestcode == my_req_code) { if (resultcode == result_ok) { //?? } else if (resultcode == result_canceled){ toast.maketext(getapplicationcontext(), "result canceled", toast.length_short).show(); } } } and second activity is:
protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_products_list); setresult(result_ok); finish(); final intent intent = getintent(); final textview txt = (textview) findviewbyid(r.id.txt); bundle title = intent.getextras(); if (title != null) { str = title.getstring("title"); } txt.settext(str); }
when moving between internal activities should use startactivity(intent) method , not startactivityforresult.
change:
startactivityforresult(intent, my_req_code); to:
startactivity(intent); update: can see create new button named btn assing listener other button. don't see create btncategorie button, should be:
button btn = new button(getapplicationcontext()); btn.settext(titles[i]); btn.setonclicklistener(getproducts); btn.settag(titles[i]); layout.addview(btn);
Comments
Post a Comment