protected override void OnSaveInstanceState(Bundle outState) { base.OnSaveInstanceState(outState); CardStreamState state = CardStream.DumpState(); mRetentionFragment.CardStream = state; }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.activity_main); var fm = FragmentManager; var fragment = (BatchStepSensorFragment)fm.FindFragmentByTag(FRAGTAG); if (fragment == null) { var transaction = fm.BeginTransaction(); fragment = new BatchStepSensorFragment(); transaction.Add(fragment, FRAGTAG); transaction.Commit(); } // Use fragment as click listener for cards, but must implement correct interface if (!(fragment is OnCardClickListener)) { throw new InvalidCastException("BatchStepSensorFragment must implement OnCardClickListener interface."); } var clickListener = (OnCardClickListener)fm.FindFragmentByTag(FRAGTAG); mRetentionFragment = (StreamRetentionFragment)fm.FindFragmentByTag(RETENTION_TAG); if (mRetentionFragment == null) { mRetentionFragment = new StreamRetentionFragment(); fm.BeginTransaction().Add(mRetentionFragment, RETENTION_TAG).Commit(); } else { // If the retention fragment already existed, we need to pull a state. // Pull State out. CardStreamState state = mRetentionFragment.CardStream; // Dump it in CardStreamFragment; mCardStreamFragment = (CardStreamFragment)fm.FindFragmentById(Resource.Id.fragment_cardstream); mCardStreamFragment.RestoreState(state, clickListener); } }