protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // MenuItem item = menu.findItem(R.id.addAction); // Set our view from the "main" layout resource this.SetContentView(Resource.Layout.Main); mToolbar = FindViewById <SupportToolbar>(Resource.Id.toolbar); //mToolbar.FindViewById<IMenuItem>(Resource.Id.action_sa mDrawerLayout = FindViewById <Android.Support.V4.Widget.DrawerLayout>(Resource.Id.drawer_layout); mLeftDrawer = FindViewById <Android.Widget.ListView>(Resource.Id.left_drawer); mFragmentContainer = FindViewById <Android.Widget.FrameLayout>(Resource.Id.fragmentContainer); mFragmentListAnimals = new FragmentListAnimals(); /*mFragmentListScience = new FragmentListScientists(); * mFragmentAddScience = new FragmentAddScientist(); * fragmentAddAnimal = new FragmentAddAnimal ();*/ mStackFragments = new Stack <SupportFragment>(); var trans = SupportFragmentManager.BeginTransaction(); /* trans.Add(Resource.Id.fragmentContainer, mFragmentAddScience, "Fragment3"); * trans.Hide(mFragmentAddScience); * * trans.Add(Resource.Id.fragmentContainer, mFragmentListScience, "Fragment2"); * trans.Hide(mFragmentListScience); * trans.Add(Resource.Id.fragmentContainer, mFragmentSetting, "FragmentSetting"); * trans.Hide (mFragmentSetting); * * * trans.Add (Resource.Id.fragmentContainer, fragmentAddAnimal, "FragmentAnimal");*/ mFragmentListScience = new FragmentListScientists(); trans.Add(Resource.Id.fragmentContainer, mFragmentListAnimals, "FragmentListAnimals"); trans.Commit(); mCurrentFragment = mFragmentListAnimals; mLeftDrawer.Tag = 0; SetSupportActionBar(mToolbar); mLeftDataSet = new List <string>(); mLeftDataSet.Add("Animals"); mLeftDataSet.Add("Scientists"); mLeftAdapter = new Android.Widget.ArrayAdapter <string>(this, Android.Resource.Layout.SimpleListItem1, mLeftDataSet); mLeftDrawer.Adapter = mLeftAdapter; mDrawerToggle = new MyActionBarDrawerToggle( this, //Host Activity mDrawerLayout //DrawerLayout ); mDrawerLayout.SetDrawerListener(mDrawerToggle); SupportActionBar.SetHomeButtonEnabled(true); SupportActionBar.SetDisplayHomeAsUpEnabled(true); SupportActionBar.SetDisplayShowTitleEnabled(true); mDrawerToggle.SyncState(); //This is the first the time the activity is ran SupportActionBar.SetTitle(Resource.String.animals); mLeftDrawer.ItemClick += MLeftDrawer_ItemClick; InitBackgroundLocationManager(); bundle = Intent.Extras; if (bundle != null) { var id = bundle.GetInt("id"); if (id != null && id != 0) { ShowFragment(ViewEnumeration.VIEW_DETAIL_ANIMAL, DataManager.Instance.GetAnimal(id)); } } }
public void ShowFragment(ViewEnumeration f, Java.Lang.Object extraData = null) { var trans = SupportFragmentManager.BeginTransaction(); trans.SetCustomAnimations(Resource.Animation.slide_in, Resource.Animation.slide_out, Resource.Animation.slide_in, Resource.Animation.slide_out); SupportFragment fragment = null; switch (f) { case ViewEnumeration.VIEW_ANIMAL: if (mCurrentFragment is FragmentListAnimals) { return; } else if (mCurrentFragment is FragmentAddAnimal) { trans.Remove(fragmentAddAnimal); } else if (mCurrentFragment is FragmentListScientists) { trans.Remove(mFragmentListScience); } else if (mCurrentFragment is FragmentAddScientist) { trans.Remove(mFragmentAddScience); } else { trans.Remove(mFragmentSetting); } mFragmentListAnimals = new FragmentListAnimals(); trans.Add(Resource.Id.fragmentContainer, mFragmentListAnimals, "FragmentListAnimals"); fragment = mFragmentListAnimals; EnableButtonSave(false); mFragmentListAnimals.RecalculateList(); break; case ViewEnumeration.VIEW_DETAIL_ANIMAL: EnableButtonSave(true); fragmentAddAnimal = new FragmentAddAnimal(); trans.Add(Resource.Id.fragmentContainer, fragmentAddAnimal, "FragmentAnimal"); fragment = fragmentAddAnimal; trans.Remove(mFragmentListAnimals); if (extraData != null) { fragmentAddAnimal.SetAnimal((AnimalAndroid)extraData); } break; case ViewEnumeration.VIEW_DETAIL_SCIENTIST: EnableButtonSave(true); mFragmentAddScience = new FragmentAddScientist(); fragment = mFragmentAddScience; trans.Remove(mFragmentListScience); trans.Add(Resource.Id.fragmentContainer, mFragmentAddScience, "FragmentAddScientist"); mFragmentAddScience.ResetFields(); if (extraData != null) { mFragmentAddScience.scientist = ((ScientistAndroid)extraData); } break; case ViewEnumeration.VIEW_SCIENTIST: EnableButtonSave(false); if (mCurrentFragment is FragmentListScientists) { return; } else if (mCurrentFragment is FragmentAddAnimal) { trans.Remove(fragmentAddAnimal); } else if (mCurrentFragment is FragmentListAnimals) { trans.Remove(mFragmentListAnimals); } else if (mCurrentFragment is FragmentAddScientist) { trans.Remove(mFragmentAddScience); } else { trans.Remove(mFragmentSetting); } trans.Add(Resource.Id.fragmentContainer, mFragmentListScience, "FragmentListScientist"); fragment = mFragmentListScience; // fragment.OnCreateView (this.LayoutInflater, this.LayoutInflater, null); mFragmentListScience.RecalculateList(); break; case ViewEnumeration.VIEW_SETTINGS: if (mCurrentFragment is FragmentSettings) { return; } else if (mCurrentFragment is FragmentAddAnimal) { trans.Remove(fragmentAddAnimal); } else if (mCurrentFragment is FragmentListAnimals) { trans.Remove(mFragmentListAnimals); } else if (mCurrentFragment is FragmentAddScientist) { trans.Remove(mFragmentAddScience); } else { trans.Remove(mFragmentListScience); } mFragmentSetting = new FragmentSettings(); trans.Add(Resource.Id.fragmentContainer, mFragmentSetting, "FragmentListScientist"); EnableButtonSave(false); SupportActionBar.SetTitle(Resource.String.settings); fragment = mFragmentSetting; break; } if (fragment != null) { if (fragment.View != null) { fragment.View.BringToFront(); } } if (mCurrentFragment.View != null) { mCurrentFragment.View.BringToFront(); } trans.Hide(mCurrentFragment); trans.Show(fragment); trans.AddToBackStack(null); mStackFragments.Push(mCurrentFragment); //trans.Remove (mCurrentFragment); trans.Commit(); FragmentManager.ExecutePendingTransactions(); //mFragmentManager.executePendingTransactions(); mCurrentFragment = fragment; }