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); } }
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); } }