public override void RestoreState(IParcelable state, ClassLoader loader) { if (state == null) { return; } var bundle = (Bundle)state; bundle.SetClassLoader(loader); var fss = bundle.GetParcelableArray("states"); _savedState.Clear(); _fragments.Clear(); var tags = bundle.GetStringArrayList("tags"); if (tags != null) { _savedFragmentTags = tags.ToList(); } else { _savedFragmentTags.Clear(); } if (fss != null) { for (var i = 0; i < fss.Length; i++) { var parcelable = fss.ElementAt(i); var savedState = parcelable.JavaCast <Fragment.SavedState>(); _savedState.Add(savedState); } } var keys = bundle.KeySet(); foreach (var key in keys) { if (!key.StartsWith("f")) { continue; } var index = Integer.ParseInt(key.Substring(1)); var f = _fragmentManager.GetFragment(bundle, key); if (f != null) { while (_fragments.Count() <= index) { _fragments.Add(null); } f.SetMenuVisibility(false); _fragments[index] = f; } } }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); if (savedInstanceState != null) { // Restore the Fragments instance mContent = (RunLocationListFragment)FragmentManager.GetFragment(savedInstanceState, "mContent"); } }
public override void RestoreState(IParcelable state, ClassLoader loader) { Bundle bundle = (Bundle)state; int pages = bundle.GetInt(_statePages); if (0 < pages) { for (int i = 0; i < pages; i++) { int position = bundle.GetInt(CreateCacheIndex(i)); Fragment f = _fm.GetFragment(bundle, CreateCacheKey(position)); _pages.Put(position, f); } } IParcelable p = (IParcelable)bundle.GetParcelable(_stateSuperState); base.RestoreState(p, loader); }
private List <Fragment> GetFragmentsFromBundle(Bundle bundle) { var fragments = new List <Fragment> (); if (bundle == null || _fragmentManager == null || _fragmentManager.Fragments == null) { return(fragments); } // This is how the base adapter retrieves its fragments from the bundle. // Copy-pasted here because the base adapter's fragment list is private var keys = bundle.KeySet(); foreach (var key in keys) { if (!key.StartsWith("f")) { continue; } var index = Integer.ParseInt(key.Substring(1)); if (_fragmentManager.Fragments == null) { return(fragments); } var f = _fragmentManager.GetFragment(bundle, key); if (f != null) { while (fragments.Count() <= index) { fragments.Add(null); } fragments[index] = f; } } return(fragments); }
public override void RestoreState(IParcelable state, ClassLoader loader) { if (state == null) { return; } var bundle = (Bundle)state; bundle.SetClassLoader(loader); var fss = bundle.GetParcelableArray("states"); if (fss != null) { for (var i = 0; i < fss.Length; i++) { _savedState.Add((Fragment.SavedState)fss[i]); } } var keys = bundle.KeySet(); foreach (var key in keys) { if (!key.StartsWith("f")) { continue; } var index = int.Parse(key.Substring(1)); var f = (TFragment)_fm.GetFragment(bundle, key); if (f == null) { Log.Warn(Tag, "Bad fragment at key " + key); continue; } while (_fragments.Count <= index) { _fragments.Add(null); } f.SetMenuVisibility(false); _fragments[index] = f; } }