public override void DisplayMessage(MessageDisplayParams messageParams) { Android.App.AlertDialog.Builder builder = new Android.App.AlertDialog.Builder(this.context); builder.SetTitle(messageParams.Title); builder.SetMessage(messageParams.Message); if (messageParams.PositiveAction != null) { builder.SetPositiveButton(messageParams.PositiveLabel ?? DefaultPositiveLabel, (s, e) => { messageParams.PositiveAction(); }); } if (messageParams.NegativeAction != null) { builder.SetNegativeButton(messageParams.NegativeLabel ?? DefaultNegativeLabel, (s, e) => { messageParams.NegativeAction(); }); } if (messageParams.NeutralAction != null) { builder.SetNeutralButton(messageParams.NeutralLabel ?? string.Empty, (s, e) => { messageParams.NeutralAction(); }); } var dialog = builder.Create(); dialog.DismissEvent += (sender, e) => { this.messages.Remove(messageParams); }; this.messages.Add(messageParams); this.dialogs.Add(dialog); dialog.Show(); }
protected virtual void HandleButtonClicked(MessageDisplayParams messageParams, UIAlertView alert, nint buttonIndex) { switch (buttonIndex) { case 0: if (messageParams.NegativeAction != null) { messageParams.NegativeAction(); } break; case 1: if (messageParams.PositiveAction != null) { messageParams.PositiveAction(); } break; case 2: if (messageParams.NeutralAction != null) { messageParams.NeutralAction(); } break; } }