android - Fragment crash after selecting another item after onBackPressed -



android - Fragment crash after selecting another item after onBackPressed -

this rather unusual issue me. i'm using custom list display items , fragment display more of selected item's data. however, whenever press , select item, app gives me illegal exception error. did wrong within codes? if don't commit transaction, details fragment not show.

this events fragment:

public static class eventssectionfragment extends fragment { /** * fragment argument representing section number * fragment. */ public static final string arg_section_number = "section_number"; sharedpreferences settings = null; editor editor; listview list; textview noeventstv; public eventssectionfragment() { } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { reclifecycle_with_savedinstancestate(savedinstancestate); view rootview = inflater.inflate(r.layout.fragment_events, container, false); list = (listview) rootview.findviewbyid(r.id.list); noeventstv = (textview) rootview.findviewbyid(r.id.norecordstv); new geteventsasynctask((mainactivity) getactivity()).execute(nyp.edu.sg.alumnigo.sharedpreferences.getusername(getactivity())); settings = preferencemanager.getdefaultsharedpreferences(getactivity()); homecoming rootview; } public void updateeventlist(final list<event> eventlist) { log.i("updateeventlist:eventlist.count", string.valueof(eventlist.size())); if (eventlist.size() > 0) { customlist_events adapter = new customlist_events(getactivity(), eventlist); noeventstv.setvisibility(view.gone); list.setvisibility(view.visible); list.setadapter(adapter); list.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { event_id = ""; event_title = ""; event_desc = ""; start_date = ""; end_date = ""; start_time = ""; end_time = ""; picture_path = ""; location = ""; event event = new event(); event = eventlist.get(position); log.i("event_details", event.getevent_id()); event_id = eventlist.get(position).getevent_id(); event_title = eventlist.get(position).getevent_title(); event_desc = eventlist.get(position).getevent_desc(); start_date = eventlist.get(position).getstart_date(); end_date = eventlist.get(position).getend_date(); start_time = eventlist.get(position).getstart_time(); end_time = eventlist.get(position).getend_time(); picture_path = eventlist.get(position).getpicture_path(); location = eventlist.get(position).getlocation(); // direct event details fragment starteventdetailsfragment(); } }); adapter.notifydatasetchanged(); list.invalidateviews(); } else { noeventstv.setvisibility(view.visible); list.setvisibility(view.gone); } }

here's details fragment:

public static class eventdetailsfragment extends fragment { public eventdetailsfragment() { } imageview banner; textview e_title, e_loc, e_date, e_time, e_desc; string eventid; @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { // todo auto-generated method stub reclifecycle_with_savedinstancestate(savedinstancestate); view rootview = inflater.inflate(r.layout.fragment_event_details, container, false); banner = (imageview) rootview.findviewbyid(r.id.banner_img); e_title = (textview) rootview.findviewbyid(r.id.event_title); e_loc = (textview) rootview.findviewbyid(r.id.event_location); e_date = (textview) rootview.findviewbyid(r.id.event_date); e_time = (textview) rootview.findviewbyid(r.id.event_time); e_desc = (textview) rootview.findviewbyid(r.id.event_desc); bundle args = getarguments(); if (args != null && args.containskey("event_id")) { eventid = args.getstring("event_id"); e_title.settext(args.getstring("event_title")); e_desc.settext(args.getstring("event_desc")); e_time.settext(args.getstring("start_time") + " - " + args.getstring("end_time")); e_date.settext(args.getstring("start_date") + " - " + args.getstring("end_date")); e_loc.settext(args.getstring("event_location")); new getimageasynctask(banner).execute(constants.host_name + "/" + constants.cms_name + "/" + args.getstring("pic_path")); } homecoming rootview; }

then method passes info on details fragment:

public static void starteventdetailsfragment() { eventdetailsfragment fragment = new eventdetailsfragment(); bundle bundle = new bundle(); bundle.putstring("event_id", event_id); bundle.putstring("event_title", event_title); bundle.putstring("event_desc", event_desc); bundle.putstring("start_time", start_time); bundle.putstring("end_time", end_time); bundle.putstring("start_date", start_date); bundle.putstring("end_date", end_date); bundle.putstring("event_location", location); bundle.putstring("pic_path", picture_path); fragment.setarguments(bundle); android.support.v4.app.fragmenttransaction transac = ft; transac.replace(r.id.fragment_events, fragment); transac.addtobackstack(null); transac.commit(); }

here's logcat:

10-17 01:54:01.494: i/event_details(13856): ev00000018 10-17 01:54:01.494: i/mytag(13856): eventdetailsfragment.oncreateview / savedinstancestate == null 10-17 01:54:01.514: i/mytag(13856): eventdetailsfragment.onstart 10-17 01:54:01.514: i/mytag(13856): eventdetailsfragment.onresume 10-17 01:54:01.544: d/dalvikvm(13856): gc_for_alloc freed 2108k, 17% free 10890k/13044k, paused 11ms, total 11ms 10-17 01:54:12.894: i/mytag(13856): eventdetailsfragment.onpause 10-17 01:54:12.894: i/mytag(13856): eventdetailsfragment.onstop 10-17 01:54:12.894: i/mytag(13856): eventdetailsfragment.ondestroyview 10-17 01:54:12.904: i/mytag(13856): eventdetailsfragment.ondestroy 10-17 01:54:12.904: i/mytag(13856): eventdetailsfragment.ondetach 10-17 01:54:17.294: i/event_details(13856): ev00000007 10-17 01:54:17.294: d/androidruntime(13856): shutting downwards vm 10-17 01:54:17.294: w/dalvikvm(13856): threadid=1: thread exiting uncaught exception (group=0x430f9140) 10-17 01:54:17.304: e/androidruntime(13856): fatal exception: main 10-17 01:54:17.304: e/androidruntime(13856): process: nyp.edu.sg.alumnigo, pid: 13856 10-17 01:54:17.304: e/androidruntime(13856): java.lang.illegalstateexception: commit called 10-17 01:54:17.304: e/androidruntime(13856): @ android.support.v4.app.backstackrecord.commitinternal(backstackrecord.java:582) 10-17 01:54:17.304: e/androidruntime(13856): @ android.support.v4.app.backstackrecord.commit(backstackrecord.java:574) 10-17 01:54:17.304: e/androidruntime(13856): @ nyp.edu.sg.alumnigo.mainactivity.starteventdetailsfragment(mainactivity.java:1882) 10-17 01:54:17.304: e/androidruntime(13856): @ nyp.edu.sg.alumnigo.mainactivity$eventssectionfragment$1.onitemclick(mainactivity.java:752) 10-17 01:54:17.304: e/androidruntime(13856): @ android.widget.adapterview.performitemclick(adapterview.java:299) 10-17 01:54:17.304: e/androidruntime(13856): @ android.widget.abslistview.performitemclick(abslistview.java:1156) 10-17 01:54:17.304: e/androidruntime(13856): @ android.widget.abslistview$performclick.run(abslistview.java:2947) 10-17 01:54:17.304: e/androidruntime(13856): @ android.widget.abslistview$3.run(abslistview.java:3681) 10-17 01:54:17.304: e/androidruntime(13856): @ android.os.handler.handlecallback(handler.java:733) 10-17 01:54:17.304: e/androidruntime(13856): @ android.os.handler.dispatchmessage(handler.java:95) 10-17 01:54:17.304: e/androidruntime(13856): @ android.os.looper.loop(looper.java:149) 10-17 01:54:17.304: e/androidruntime(13856): @ android.app.activitythread.main(activitythread.java:5257) 10-17 01:54:17.304: e/androidruntime(13856): @ java.lang.reflect.method.invokenative(native method) 10-17 01:54:17.304: e/androidruntime(13856): @ java.lang.reflect.method.invoke(method.java:515) 10-17 01:54:17.304: e/androidruntime(13856): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:793) 10-17 01:54:17.304: e/androidruntime(13856): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:609) 10-17 01:54:17.304: e/androidruntime(13856): @ dalvik.system.nativestart.main(native method)

android.support.v4.app.fragmenttransaction transac = ft;

looks have phone call commit upon ft.

change with

android.support.v4.app.fragmenttransaction transac = getsupportfragmentmanager().begintransaction();

android android-fragments custom-lists

Comments

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -