Android Fragment getArguments() returns null -


as title suggest.
i've downloaded fragment code here, http://developer.android.com/shareables/training/fragmentbasics.zip.
fragment example android official developer site. http://developer.android.com/training/basics/fragments/fragment-ui.html

this mainactivity.java's oncreate():

/** called when activity first created. */ @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.news_articles);      // check whether activity using layout version     // fragment_container framelayout. if so, must add first fragment     if (findviewbyid(r.id.fragment_container) != null) {          // however, if we're being restored previous state,         // don't need , should return or else         // end overlapping fragments.         if (savedinstancestate != null) {             return;         }          // create instance of examplefragment         headlinesfragment fragment = new headlinesfragment();          // in case activity started special instructions intent,         // pass intent's extras fragment arguments         //fragment.setarguments(getintent().getextras());         bundle args= new bundle();         args.putstring("category", "clothes");         args.putstring("item", "shirts");         fragment.setarguments(args);          // add fragment 'fragment_container' framelayout         getsupportfragmentmanager().begintransaction()                 .replace(r.id.fragment_container, fragment).commit();     } } 

and headlinesfragment.java's oncreate():

@override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);      // need use different list item layout devices older honeycomb     int layout = build.version.sdk_int >= build.version_codes.honeycomb ?             android.r.layout.simple_list_item_activated_1 : android.r.layout.simple_list_item_1;      bundle args = getarguments();     if (args == null) {         toast.maketext(getactivity(), "arguments null " , toast.length_long).show();     } else {         toast.maketext(getactivity(), "text " + args , toast.length_long).show();     }              // create array adapter list view, using ipsum headlines array     setlistadapter(new arrayadapter<string>(getactivity(), layout, ipsum.headlines));  } 

i've read several qa here, 1 fragment getarguments() returns null, , many other related setarguments() , getarguments(), still i'm stuck.

and i've moved bundle , toast code onattach() , oncreateview() no avail. wrong code? think i'm missing something, dunno it.
please help! thanks.

edit:
i'll state intention more clearly. in fragmentbasic downloaded, there's mainactivity.java, headlinesfragment.java, , articlesfragment.java. 'communication' mainactivity.java articlesfragment.java not problem here. want send data mainactivity.java headlinesfragment.java. connection's this:

-------------------------------------- | mainactivity <-> headlinesfragment | |      |                             | |      |>> articlesfragment          | -------------------------------------- 

and headlinesfragment running @ runtime.

*these code works, when using android gadget < 600px width. doesn't work when using on tablet ( >= 600px), proved @tesla1984 below. want same result either on gadget < 600px , on gadget > 600px.

@tonny

i've download fragmentbasics.zip. change argument name.here code , result pic.

mainactivity

public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.news_articles);      // check whether activity using layout version     // fragment_container framelayout. if so, must add first fragment     if (findviewbyid(r.id.fragment_container) != null) {          // however, if we're being restored previous state,         // don't need , should return or else         // end overlapping fragments.         if (savedinstancestate != null) {             return;         }          // create instance of examplefragment         headlinesfragment fragment = new headlinesfragment();          // in case activity started special instructions intent,         // pass intent's extras fragment arguments //            firstfragment.setarguments(getintent().getextras());         //test         bundle args= new bundle();         args.putstring("category", "clothes");         args.putstring("item", "shirts");         fragment.setarguments(args);          // add fragment 'fragment_container' framelayout         getsupportfragmentmanager().begintransaction()                 .replace(r.id.fragment_container, fragment).commit();     } } 

headlinesfragment

public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);      // need use different list item layout devices older honeycomb     int layout = build.version.sdk_int >= build.version_codes.honeycomb ?             android.r.layout.simple_list_item_activated_1 : android.r.layout.simple_list_item_1;      bundle args = getarguments();     if (args == null) {         toast.maketext(getactivity(), "arguments null " , toast.length_long).show();     } else {         toast.maketext(getactivity(), "text " + args , toast.length_long).show();     }          // create array adapter list view, using ipsum headlines array     setlistadapter(new arrayadapter<string>(getactivity(), layout, ipsum.headlines)); } 

here result

enter image description here


Comments

Popular posts from this blog

Change php variable from jquery value using ajax (same page) -

Pull out data related to my apps from Android Play Store and iOS App Store -

How can I fetch data from a web server in an android application? -