Esempio n. 1
0
        private void ShowDialog(int id)
        {
            this.titleDialogId = id;

            if (this.isShowingTwoFragments)
            {
                base.ListView.SetItemChecked(this.titleDialogId, true);

                var dialogContainer =
                    base.FragmentManager
                    .FindFragmentById(Resource.Id.dialog_container)
                    as DialogFragment;

                var isContainerEmpty           = dialogContainer == null;                           // before first selected title
                var isDifferentDialogDisplayed = dialogContainer?.GetDalogId != this.titleDialogId; // if other dialog is currently displayed

                if (isContainerEmpty || isDifferentDialogDisplayed)
                {
                    var container      = base.Activity.FindViewById(Resource.Id.dialog_container);
                    var dialogFragment = DialogFragment.CreateInstance(this.titleDialogId);

                    var fragmentTransaction = base.FragmentManager.BeginTransaction();
                    fragmentTransaction.Replace(Resource.Id.dialog_container, dialogFragment);
                    fragmentTransaction.AddToBackStack(null);
                    fragmentTransaction.SetTransition(Android.App.FragmentTransit.FragmentFade);
                    fragmentTransaction.Commit();
                }
            }
            else
            {
                var intent = new Intent(base.Activity, typeof(DialogActivity));
                intent.PutExtra(TitleDialogIdKey, id);
                base.StartActivity(intent);
            }
        }
Esempio n. 2
0
        public static DialogFragment CreateInstance(int id)
        {
            var bundle = new Bundle();

            bundle.PutInt(TitlesFragment.TitleDialogIdKey, id);

            var fragment = new DialogFragment
            {
                Arguments = bundle
            };

            return(fragment);
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            var isLandscape = Resources.Configuration.Orientation == Android.Content.Res.Orientation.Landscape;

            if (isLandscape)
            {
                base.Finish();
            }

            var dialogId       = base.Intent.Extras.GetInt(TitlesFragment.TitleDialogIdKey, 0);
            var dialogFragment = DialogFragment.CreateInstance(dialogId);

            base.FragmentManager
            .BeginTransaction()
            .Add(Android.Resource.Id.Content, dialogFragment)
            .Commit();
        }