コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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;
        }