Setting SharedPreference within Fragments as Tabs -


i'm having problems thought simple use of sharedpreferences!

aim: i've actionbar/tab application mainactivity , 4 tabs swipe fragments. want app remember last user selected tab, on next start of app, defaults tab.

code in each fragment (in oncreateview method):

sharedpreferences prefs = getactivity().getpreferences(context.mode_private); sharedpreferences.editor editor = prefs.edit().putint("tabpref", 0); editor.apply(); 

where "tabpref", 0 name of pref , number of tab (0-3).

in mainactivity, i'm using following read preference , set default tab on starting app (in oncreate):

sharedpreferences prefs = getpreferences(context.mode_private); integer tabpref = prefs.getint("tabpref", 99); mviewpager.setcurrentitem(tabpref, false); 

however, i'm getting weird preferences being set, don't conform selection of tab (e.g. tab 4 doesn't set preference, , tabs 1-3 randomly set integers 0, 1, 2 or 3 - i'm using system.outs see what's happening).

am missing fundamental regarding life cycle of fragments isn't setting sharedpreference?

thanks....

solved: needed set sharedpreferences in onpagechangelistener class within mainactivity, not in fragments (doh!).

mviewpager.setonpagechangelistener(new viewpager.simpleonpagechangelistener() {         @override         public void onpageselected(int position) {             actionbar.setselectednavigationitem(position);             sharedpreferences.editor editor = prefs.edit().putint("tabpref", position);             editor.apply();         } }); 

Comments