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; } } }
public override void SetAdapter(Adapter adapter) { base.SetAdapter(adapter); if (pendingState != null && adapter is ISingleSelectionAdapter) { (adapter as ISingleSelectionAdapter).SelectedItem = pendingState.Selection; } pendingState = null; }
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); }