protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Main); experimentNames = new string[] { "Mystery Experiment", "Anticipation", "Squash/Stretch" }; experimentSwitchers = new Action[] { SwitchToExperiment <BounceMarkerContentFragment>, SwitchToExperiment <AnticipationContentFragment>, SwitchToExperiment <SquashStretchContentFragment> }; availableCurves = new ITimeCurve[] { new LinearCurve(), new QuadraticCurve(), new InvertedQuadraticCurve(), new PowerCurve(5), new SineCurve() }; graph = FindViewById <InterpolatorGraphView> (Resource.Id.graphView); slowMode = FindViewById <CheckBox> (Resource.Id.slowMotion); start = FindViewById <Button> (Resource.Id.start); experimentSpinner = FindViewById <Spinner> (Resource.Id.experimentSpinner); curveName = FindViewById <Spinner> (Resource.Id.curveName); var adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerItem, experimentNames); adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); experimentSpinner.Adapter = adapter; experimentSpinner.ItemSelected += (sender, e) => experimentSwitchers [e.Position] (); var curveNames = new System.Collections.Generic.List <string> { "Default" }; curveNames.AddRange(availableCurves.Select(c => ToHumanString(c.GetType().Name))); adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerItem, curveNames.ToArray()); adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); curveName.Adapter = adapter; curveName.ItemSelected += HandleCurveSelected; start.Click += (sender, e) => { if (currentExperiment == null) { return; } graph.SetAnimationCompletion(0); currentExperiment.AnimationCurrentCompletion += graph.SetAnimationCompletion; currentExperiment.StartAnimation(slowMode.Checked); }; SwitchToExperiment <BounceMarkerContentFragment> (); }