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); } }
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(); }