public override bool OnOptionsItemSelected(IMenuItem item) { switch (item.ItemId) { case Android.Resource.Id.Home: //The hamburger icon was clicked which means the drawer toggle will handle the event //all we need to do is ensure the right drawer is closed so the don't overlap mDrawerToggle.OnOptionsItemSelected(item); return(true); case Resource.Id.action_save: EnableButtonSave(false); if (mCurrentFragment is FragmentAddAnimal) { ((FragmentAddAnimal)mCurrentFragment).SaveAnimal(location); mFragmentListAnimals.RecalculateList(); ShowFragment(ViewEnumeration.VIEW_ANIMAL); } else if (mCurrentFragment is FragmentAddScientist) { ((FragmentAddScientist)mCurrentFragment).AddScientist(); mFragmentListScience.RecalculateList(); ShowFragment(ViewEnumeration.VIEW_SCIENTIST); } return(true); case Resource.Id.action_share: ShowFragment(ViewEnumeration.VIEW_SETTINGS); return(true); /*case Android.Resource.Id.: * * break;*/ default: return(base.OnOptionsItemSelected(item)); } }
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; }