android - Using onSaveInstanceState with fragments in backstack? -
i have fragments keep in backstack of fragmentmanager. every fragment state saved orientation changes member variables, example:
@override public void onsaveinstancestate(bundle outstate) { super.onsaveinstancestate(outstate); outstate.putlong("userid", muserid); outstate.putstring("username", musername); }
my problem if there orientation change, since every fragment in backstack gets called via onsaveinstancestate, null pointer exception because member variables don't exist anymore.
any ideas on how solve this?
it possible member variables don't exist anymore because fragmentmanager
in activity
dying of fragments.
you need override method onsaveinstancestate
of activity
class well, because need save activity
state before save fragments
state.
as documentation says:
there many situations fragment may torn down (such when placed on stack no ui showing), state not saved until owning activity needs save state.
update
in activity
onsaveinstancestate
, onrestoreinstancestate
, try saving fragment
references , restore them this:
public void onsaveinstancestate(bundle outstate){ getfragmentmanager().putfragment(outstate,"myfragment",myfragment); } public void onrestoreinstancestate(bundle instate){ myfragment = getfragmentmanager().getfragment(instate,"myfragment"); }
tell me if had luck! :-)
Comments
Post a Comment