예제 #1
0
		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);
            }
        }