Beispiel #1
0
        public override IParcelable SaveState()
        {
            Bundle state = null;

            if (_savedState.Any())
            {
                state = new Bundle();

                var fss = new IParcelable[_savedState.Count];
                for (var i = 0; i < _savedState.Count; i++)
                {
                    fss[i] = _savedState.ElementAt(i);
                }

                state.PutParcelableArray("states", fss);
                state.PutStringArrayList("tags", _savedFragmentTags);
            }

            for (var i = 0; i < _fragments.Count; i++)
            {
                var f = _fragments.ElementAtOrDefault(i);
                if (f == null)
                {
                    continue;
                }

                if (state == null)
                {
                    state = new Bundle();
                }
                var key = "f" + i;
                _fragmentManager.PutFragment(state, key, f);
            }
            return(state);
        }
Beispiel #2
0
        public override IParcelable SaveState()
        {
            Bundle state = null;

            if (_savedState.Count > 0)
            {
                state = new Bundle();
                var fss = new Fragment.SavedState[_savedState.Count];
                _savedState.CopyTo(fss, 0);
                state.PutParcelableArrayList("states", fss);
            }
            for (var i = 0; i < _fragments.Count; i++)
            {
                var f = _fragments[i];
                if (f != null && f.IsAdded)
                {
                    if (state == null)
                    {
                        state = new Bundle();
                    }
                    var key = "f" + i;
                    _fm.PutFragment(state, key, f);
                }
            }
            return(state);
        }
Beispiel #3
0
        public override IParcelable SaveState()
        {
            IParcelable p      = base.SaveState();
            Bundle      bundle = new Bundle();

            bundle.PutParcelable(_stateSuperState, p);

            bundle.PutInt(_statePages, _pages.Size());
            if (0 < _pages.Size())
            {
                for (int i = 0; i < _pages.Size(); i++)
                {
                    int position = _pages.KeyAt(i);
                    bundle.PutInt(CreateCacheIndex(i), position);
                    Fragment f = _pages.Get(position);
                    _fm.PutFragment(bundle, CreateCacheKey(position), f);
                }
            }
            return(bundle);
        }
 protected override void OnSaveInstanceState(Bundle outState)
 {
     base.OnSaveInstanceState(outState);
     FragmentManager.PutFragment(outState, "mContent", mContent);
 }