java - Transferring intent/ data/ bundle between parent/otherwise activity and fragment -
i have 3 classes here: ijob, tabbed_activity , placeholderfragment. want pass strings created in ijob class placeholderfragment oncreateview show them custom page. yet create second , third fragment. ijob list of jobs. tabbed_activity manager class of fragments. placeholderfragment 1 of fragments. can see, have tried bundle, intent , getactivity.. none of them seems work. have tried getting data ijob tabbed_activity first, placeholderfragment. please help.
ijob.java
package com.example.administrator.signin; import android.app.listactivity; import android.app.progressdialog; import android.content.intent; import android.os.asynctask; import android.os.bundle; import android.provider.settings; import android.support.v4.app.fragment; import android.util.log; import android.view.view; import android.widget.adapterview; import android.widget.adapterview.onitemclicklistener; import android.widget.listadapter; import android.widget.listview; import android.widget.simpleadapter; import android.widget.textview; import org.json.jsonarray; import org.json.jsonexception; import org.json.jsonobject; import java.util.arraylist; import java.util.hashmap; public class ijob extends listactivity { private progressdialog pdialog; // url contacts json // private static string url = "http://0.0.00.00:xxxxx/transporter/fetch_ffa_insp_emp.jsp?ecd=5d573aecfdc5e7a5"; // json node names private static final string tag_con_no = "consumer_no"; private static final string tag_met_no = "meter_no"; private static final string tag_rec_on = "received_on"; private static final string tag_con_name = "con_name"; //private static final string tag_con_cat = "con_cat"; private static final string tag_met_rat = "met_rat"; private static final string tag_con_add = "con_add"; //private static final string tag_con_acc_add = "con_acc_add"; private static final string tag_com_rsn = "com_rsn"; public static final string tag_m_ref = "m_ref"; private static final string tag_m_date = "m_date"; // //private static final string tag_con_cat = " "; private static final string tag_prev_data = "prev_data"; private static final string tag_tele_no = "tele_no"; private static final string tag_ie_dt_n_prsnt_prev_rdg = "ie_dt_n_prsnt_prev_rdg"; private static final string tag_lcc_lro_rom = "lcc_lro_rom"; // hashmap listview arraylist<hashmap<string, string>> joblist; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.ijob); joblist = new arraylist<hashmap<string, string>>(); listview lv = getlistview(); // listview on item click listener lv.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { // getting values selected listitem string consumer_no = ((textview) view.findviewbyid(r.id.con_no)) .gettext().tostring(); string meter_no = ((textview) view.findviewbyid(r.id.met_no)) .gettext().tostring(); string met_rat = ((textview) view.findviewbyid(r.id.met_rat)) .gettext().tostring(); string rec_on = ((textview) view.findviewbyid(r.id.rec_on)) .gettext().tostring(); string con_name = ((textview) view.findviewbyid(r.id.con_name)) .gettext().tostring(); string con_add = ((textview) view.findviewbyid(r.id.con_add)) .gettext().tostring(); string com_rsn = ((textview) view.findviewbyid(r.id.com_rsn)) .gettext().tostring(); string m_ref = ((textview) view.findviewbyid(r.id.m_ref)) .gettext().tostring(); string m_date = ((textview) view.findviewbyid(r.id.m_date)) .gettext().tostring(); string prev_data = ((textview) view.findviewbyid(r.id.prev_data)) .gettext().tostring(); string tele_no = ((textview) view.findviewbyid(r.id.tele_no)) .gettext().tostring(); string ie_dt_n_prsnt_prev_rdg = ((textview) view.findviewbyid(r.id.ie_dt_n_prsnt_prev_rdg)) .gettext().tostring(); string lcc_lro_rom = ((textview) view.findviewbyid(r.id.lcc_lro_rom)) .gettext().tostring(); // starting single contact activity intent in = new intent(getapplicationcontext(), tabbed_activity.class); // bundle bundle= new bundle(); // bundle.putstring(tag_con_no, consumer_no); // bundle.putstring(tag_met_no, meter_no); // bundle.putstring(tag_met_rat, met_rat); // bundle.putstring(tag_rec_on, rec_on); // bundle.putstring(tag_con_name, con_name); // bundle.putstring(tag_con_add, con_add); // bundle.putstring(tag_com_rsn, com_rsn); // bundle.putstring(tag_m_ref, m_ref); // bundle.putstring(tag_m_date, m_date); // bundle.putstring(tag_prev_data, prev_data); // bundle.putstring(tag_tele_no, tele_no); // bundle.putstring(tag_ie_dt_n_prsnt_prev_rdg, ie_dt_n_prsnt_prev_rdg); // bundle.putstring(tag_lcc_lro_rom, lcc_lro_rom); // placeholderfragment argumentfragment = new placeholderfragment();//get fragment instance // argumentfragment.setarguments(bundle);//finally set argument bundle fragment */ // in.putextra(tag_con_no, consumer_no); // in.putextra(tag_met_no, meter_no); // in.putextra(tag_met_rat, met_rat); // in.putextra(tag_rec_on, rec_on); // in.putextra(tag_con_name, con_name); // in.putextra(tag_con_add, con_add); // in.putextra(tag_com_rsn, com_rsn); in.putextra(tag_m_ref, m_ref); // in.putextra(tag_m_date, m_date); // in.putextra(tag_prev_data, prev_data); // in.putextra(tag_tele_no, tele_no); // in.putextra(tag_ie_dt_n_prsnt_prev_rdg, ie_dt_n_prsnt_prev_rdg); // in.putextra(tag_lcc_lro_rom, lcc_lro_rom); */ startactivity(in); } }); // calling async task json new getcontacts().execute(); } /** * async task class json making http call * */ private class getcontacts extends asynctask<void, void, void> { @override protected void onpreexecute() { super.onpreexecute(); // showing progress dialog pdialog = new progressdialog(ijob.this); pdialog.setmessage("please wait..."); pdialog.setcancelable(false); pdialog.show(); } @override protected void doinbackground(void... arg0) { // creating service handler class instance servicehandler sh = new servicehandler(); // making request url , getting response string aid = settings.secure.getstring(getcontentresolver(), settings.secure.android_id); string url = "http://00.00.00.00:00000/transporter/fetch_ffa_insp_emp_1.jsp?ecd=" + aid; string jsonstr = sh.makeservicecall(url, servicehandler.get); log.d("response: ", "> " + jsonstr); if (jsonstr != null) { try { // jsonobject jsonobj = new jsonobject(jsonstr); jsonarray jobs = new jsonarray(jsonstr); // getting json array node // jobs = jsonobj.getjsonarray(""); // looping through contacts (int = 0; < jobs.length(); i++) { jsonobject c = jobs.getjsonobject(i); string con_no = c.getstring(tag_con_no);// +" - "+c.getstring(tag_con_cat); string met_no = c.getstring(tag_met_no); string met_rat = c.getstring(tag_met_rat); string rec_on = c.getstring(tag_rec_on); string con_name = (i + 1) + " . " + c.getstring(tag_con_name); string con_add = c.getstring(tag_con_add); //+" "+c.getstring(tag_con_acc_add); string com_rsn = c.getstring(tag_com_rsn); string m_ref = c.getstring(tag_m_ref); string m_date = c.getstring(tag_m_date); string prev_data = c.getstring(tag_prev_data); string tele_no = c.getstring(tag_tele_no); string ie_dt_n_prsnt_prev_rdg = c.getstring(tag_ie_dt_n_prsnt_prev_rdg); string lcc_lro_rom = c.getstring(tag_lcc_lro_rom); // tmp hashmap single contact hashmap<string, string> contact = new hashmap<string, string>(); // adding each child node hashmap key => value contact.put(tag_con_no, con_no); contact.put(tag_met_no, met_no); contact.put(tag_met_rat, met_rat); contact.put(tag_rec_on, rec_on); contact.put(tag_con_name, con_name); contact.put(tag_con_add, con_add); contact.put(tag_com_rsn, com_rsn); contact.put(tag_m_ref, m_ref); contact.put(tag_m_date, m_date); contact.put(tag_prev_data, prev_data); contact.put(tag_tele_no, tele_no); contact.put(tag_ie_dt_n_prsnt_prev_rdg, ie_dt_n_prsnt_prev_rdg); contact.put(tag_lcc_lro_rom, lcc_lro_rom); // adding contact contact list joblist.add(contact); } } catch (jsonexception e) { e.printstacktrace(); } } else { log.e("servicehandler", "couldn't data url"); } return null; } @override protected void onpostexecute(void result) { super.onpostexecute(result); // dismiss progress dialog if (pdialog.isshowing()) pdialog.dismiss(); /** * updating parsed json data listview * */ listadapter adapter = new simpleadapter( ijob.this, joblist, r.layout.list_item, new string[]{tag_con_no, tag_met_no, tag_met_rat, tag_rec_on, tag_con_name, tag_con_add, tag_com_rsn, tag_m_ref, tag_m_date, tag_prev_data, tag_tele_no, tag_ie_dt_n_prsnt_prev_rdg, tag_lcc_lro_rom}, new int[]{r.id.con_no, r.id.met_no, r.id.met_rat, r.id.rec_on, r.id.con_name, r.id.con_add, r.id.com_rsn, r.id.m_ref, r.id.m_date, r.id.prev_data, r.id.tele_no, r.id.ie_dt_n_prsnt_prev_rdg, r.id.lcc_lro_rom}); setlistadapter(adapter); } } }
tabbed_activity.java
package com.example.administrator.signin; import android.content.intent; import android.support.design.widget.tablayout; import android.support.design.widget.floatingactionbutton; import android.support.design.widget.snackbar; import android.support.v7.app.appcompatactivity; import android.support.v7.widget.toolbar; import android.support.v4.app.fragment; import android.support.v4.app.fragmentmanager; import android.support.v4.app.fragmentpageradapter; import android.support.v4.view.viewpager; import android.os.bundle; import android.view.layoutinflater; import android.view.menu; import android.view.menuitem; import android.view.view; import android.view.viewgroup; import android.widget.textview; public class tabbed_activity extends appcompatactivity { public static final string tag_m_ref = "m_ref"; /** * {@link android.support.v4.view.pageradapter} provide * fragments each of sections. use * {@link fragmentpageradapter} derivative, keep every * loaded fragment in memory. if becomes memory intensive, * may best switch * {@link android.support.v4.app.fragmentstatepageradapter}. */ private sectionspageradapter msectionspageradapter; /** * {@link viewpager} host section contents. */ private viewpager mviewpager; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_tabbed); intent in = getintent(); string met_ref = in.getstringextra(tag_m_ref); bundle bundle = new bundle(); bundle.putstring("edttext", met_ref); placeholderfragment argumentfragment = new placeholderfragment();//get fragment instance argumentfragment.setarguments(bundle);//finally set argument bundle fragment */ toolbar toolbar = (toolbar) findviewbyid(r.id.toolbar); setsupportactionbar(toolbar); getsupportactionbar().setdisplayhomeasupenabled(true); // create adapter return fragment each of 3 // primary sections of activity. msectionspageradapter = new sectionspageradapter(getsupportfragmentmanager()); // set viewpager sections adapter. mviewpager = (viewpager) findviewbyid(r.id.container); mviewpager.setadapter(msectionspageradapter); tablayout tablayout = (tablayout) findviewbyid(r.id.tabs); tablayout.setupwithviewpager(mviewpager); floatingactionbutton fab = (floatingactionbutton) findviewbyid(r.id.fab); fab.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { snackbar.make(view, "replace own action", snackbar.length_long) .setaction("action", null).show(); } }); } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.menu_tabbed_, menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. int id = item.getitemid(); //noinspection simplifiableifstatement if (id == r.id.action_settings) { return true; } return super.onoptionsitemselected(item); } /** * {@link fragmentpageradapter} returns fragment corresponding * 1 of sections/tabs/pages. */ public class sectionspageradapter extends fragmentpageradapter { public sectionspageradapter(fragmentmanager fm) { super(fm); } @override public fragment getitem(int position) { // getitem called instantiate fragment given page. // return placeholderfragment (defined static inner class below). return placeholderfragment.newinstance(position); } @override public int getcount() { // show 3 total pages. return 3; } @override public charsequence getpagetitle(int position) { switch (position) { case 0: return "section 1"; case 1: return "section 2"; case 2: return "section 3"; } return null; } } }
placeholderfragment.java
package com.example.administrator.signin; /** * created administrator on 8/26/2016. */ import android.content.intent; import android.os.bundle; import android.support.v4.app.fragment; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.textview; import android.widget.toast; /** * placeholder fragment containing simple view. */ public class placeholderfragment extends fragment { /** * fragment argument representing section number * fragment. */ private static final string arg_section_number = "section_number"; public placeholderfragment() { } /** * returns new instance of fragment given section * number. */ public static placeholderfragment newinstance(int sectionnumber) { placeholderfragment fragment = new placeholderfragment(); bundle args = new bundle(); args.putint(arg_section_number, sectionnumber); fragment.setarguments(args); return fragment; } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view rootview = inflater.inflate(r.layout.placeholder_1, container, false); string strtext = getarguments().getstring("edttext"); textview textview = (textview) rootview.findviewbyid(r.id.m_ref); textview.settext(strtext); return rootview; } }
it seems not using placeholder fragment created in activity oncreate method no else. set bundle here. placeholderfragments created in viewpager dont have bundle. have set bundle in viewpager.
Comments
Post a Comment