예제 #1
0
        protected override void OnRestoreInstanceState(IParcelable state)
        {
            if (!(state is MySavedState))
            {
                base.OnRestoreInstanceState(state);
            }
            else
            {
                var savedState = state as MySavedState;
                base.OnRestoreInstanceState(savedState.Ss);

                if (GetAdapter() != null)
                {
                    var adapter = GetAdapter();
                    if (adapter is ISingleSelectionAdapter)
                    {
                        (adapter as ISingleSelectionAdapter).SelectedItem = savedState.Selection;
                    }
                }
                else
                {
                    pendingState = savedState;
                }
            }
        }
예제 #2
0
 public override void SetAdapter(Adapter adapter)
 {
     base.SetAdapter(adapter);
     if (pendingState != null && adapter is ISingleSelectionAdapter)
     {
         (adapter as ISingleSelectionAdapter).SelectedItem = pendingState.Selection;
     }
     pendingState = null;
 }
예제 #3
0
        protected override IParcelable OnSaveInstanceState()
        {
            var ss        = base.OnSaveInstanceState();
            var adapter   = GetAdapter();
            var selection = -1;

            if (adapter is ISingleSelectionAdapter)
            {
                selection = (adapter as ISingleSelectionAdapter).SelectedItem;
            }

            var savedState = new MySavedState()
            {
                Ss        = ss,
                Selection = (int)selection
            };

            return(savedState);
        }