java - Passing ArrayList<String> from activity to fragment in android -
i have been dealing issue while cannot seem figure out, trying pass arraylist<string> activity fragment, however, following stack trace when run code
03-30 19:26:38.465 28955-28955/org.tcnjteamandroid.cryptochat e/androidruntime﹕ fatal exception: main process: org.tcnjteamandroid.cryptochat, pid: 28955 java.lang.runtimeexception: unable start activity componentinfo{org.tcnjteamandroid.cryptochat/org.tcnjteamandroid.cryptochat.drawer}: android.view.inflateexception: binary xml file line #24: error inflating class fragment @ android.app.activitythread.performlaunchactivity(activitythread.java:2299) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2361) @ android.app.activitythread.access$800(activitythread.java:145) @ android.app.activitythread$h.handlemessage(activitythread.java:1279) @ android.os.handler.dispatchmessage(handler.java:102) @ android.os.looper.loop(looper.java:135) @ android.app.activitythread.main(activitythread.java:5240) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:899) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:694) caused by: android.view.inflateexception: binary xml file line #24: error inflating class fragment @ android.view.layoutinflater.createviewfromtag(layoutinflater.java:763) @ android.view.layoutinflater.rinflate(layoutinflater.java:806) @ android.view.layoutinflater.inflate(layoutinflater.java:504) @ android.view.layoutinflater.inflate(layoutinflater.java:414) @ android.view.layoutinflater.inflate(layoutinflater.java:365) @ android.support.v7.app.actionbaractivitydelegatebase.setcontentview(actionbaractivitydelegatebase.java:228) @ android.support.v7.app.actionbaractivity.setcontentview(actionbaractivity.java:102) @ org.tcnjteamandroid.cryptochat.drawer.oncreate(drawer.java:53) @ android.app.activity.performcreate(activity.java:5933) @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1105) @ android.app.activitythread.performlaunchactivity(activitythread.java:2252) at android.app.activitythread.handlelaunchactivity(activitythread.java:2361) at android.app.activitythread.access$800(activitythread.java:145) at android.app.activitythread$h.handlemessage(activitythread.java:1279) at android.os.handler.dispatchmessage(handler.java:102) at android.os.looper.loop(looper.java:135) at android.app.activitythread.main(activitythread.java:5240) at java.lang.reflect.method.invoke(native method) at java.lang.reflect.method.invoke(method.java:372) at com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:899) at com.android.internal.os.zygoteinit.main(zygoteinit.java:694) caused by: java.lang.nullpointerexception: attempt invoke virtual method 'java.util.arraylist android.os.bundle.getstringarraylist(java.lang.string)' on null object reference @ org.tcnjteamandroid.cryptochat.navigationdrawerfragment.oncreateview(navigationdrawerfragment.java:96) @ android.support.v4.app.fragment.performcreateview(fragment.java:1786) @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:920) @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1104) @ android.support.v4.app.fragmentmanagerimpl.addfragment(fragmentmanager.java:1206) @ android.support.v4.app.fragmentmanagerimpl.oncreateview(fragmentmanager.java:2159) @ android.support.v4.app.fragmentactivity.oncreateview(fragmentactivity.java:297) @ android.support.v7.app.actionbaractivity.oncreateview(actionbaractivity.java:547) @ android.view.layoutinflater.createviewfromtag(layoutinflater.java:727) at android.view.layoutinflater.rinflate(layoutinflater.java:806) at android.view.layoutinflater.inflate(layoutinflater.java:504) at android.view.layoutinflater.inflate(layoutinflater.java:414) at android.view.layoutinflater.inflate(layoutinflater.java:365) at android.support.v7.app.actionbaractivitydelegatebase.setcontentview(actionbaractivitydelegatebase.java:228) at android.support.v7.app.actionbaractivity.setcontentview(actionbaractivity.java:102) at org.tcnjteamandroid.cryptochat.drawer.oncreate(drawer.java:53) at android.app.activity.performcreate(activity.java:5933) at android.app.instrumentation.callactivityoncreate(instrumentation.java:1105) at android.app.activitythread.performlaunchactivity(activitythread.java:2252) at android.app.activitythread.handlelaunchactivity(activitythread.java:2361) at android.app.activitythread.access$800(activitythread.java:145) at android.app.activitythread$h.handlemessage(activitythread.java:1279) at android.os.handler.dispatchmessage(handler.java:102) at android.os.looper.loop(looper.java:135) at android.app.activitythread.main(activitythread.java:5240) at java.lang.reflect.method.invoke(native method) at java.lang.reflect.method.invoke(method.java:372) at com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:899) at com.android.internal.os.zygoteinit.main(zygoteinit.java:694) the code using pass information , pick follows:
@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_drawer); mnavigationdrawerfragment = (navigationdrawerfragment) getsupportfragmentmanager().findfragmentbyid(r.id.navigation_drawer); mtitle = gettitle(); arraylist<string> menuitems = new arraylist<string>(); menuitems.add("test"); bundle bundle = new bundle(); bundle.putstringarraylist("edttext", menuitems); /* set fragmentclass arguments */ navigationdrawerfragment fragobj = new navigationdrawerfragment(); fragobj.setarguments(bundle); // set drawer. mnavigationdrawerfragment.setup( r.id.navigation_drawer, (drawerlayout) findviewbyid(r.id.drawer_layout)); } and code using pick new arguments is:
@override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { arraylist<string> strtext = getarguments().getstringarraylist("edttext"); mdrawerlistview = (listview) inflater.inflate( r.layout.fragment_navigation_drawer, container, false); mdrawerlistview.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { selectitem(position); } }); mdrawerlistview.setadapter(new arrayadapter<string>( getactionbar().getthemedcontext(), android.r.layout.simple_list_item_activated_1, android.r.id.text1, strtext)); mdrawerlistview.setitemchecked(mcurrentselectedposition, true); return mdrawerlistview; } any appreciated!
you can use class static arraylist property
public class values { public static arraylist<string> myarraylist; } in activity:
arraylist<string> menuitems = new arraylist<string>(); values.myarraylist = menuitems; in fragment
arraylist<string> strtext = values.myarrayadapter;
Comments
Post a Comment