# Dialogs

# AlertDialog

// 1. Instantiate an AlertDialog.Builder with its constructor
// the parameter this is the context (usually your activity)
AlertDialog.Builder builder = new AlertDialog.Builder(this);

// 2. Chain together various setter methods to set the dialog characteristics 
builder.SetMessage(Resource.String.dialog_message)
       .SetTitle(Resource.String.dialog_title);

// 3. Get the AlertDialog from create()
AlertDialog dialog = builder.Create();

dialog.Show();

# Simple Alert Dialog Example

We shall create a simple Alert Dialog in Xamarin.Android

Now considering you have gone through the getting started guide (opens new window) from the documentation.

You must be having the project structure like this:

Project Structure (opens new window)

Your Main Activity must be looking like this:


public class MainActivity : Activity
 {
 int count = 1;
 
 protected override void OnCreate(Bundle bundle)
 {
 base.OnCreate(bundle);
 
 // Set our view from the "main" layout resource
 SetContentView(Resource.Layout.Main);
 
 // Get our button from the layout resource,
 // and attach an event to it
 Button button = FindViewById<Button>(Resource.Id.MyButton);
 
 button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };
 }
 }

Now What we shall do is, instead of adding one to the counter on button click, we shall ask user if he wants to add or substract one in a simple Alert Dialog

And on Click of the Positive or the negative button we will take the action.


button.Click += delegate {
 AlertDialog.Builder alert = new AlertDialog.Builder(this);
 alert.SetTitle("Specify Action");
 alert.SetMessage("Do you want to add or substract?");

 alert.SetPositiveButton("Add", (senderAlert, args) =>
 {
 count++;
 button.Text = string.Format("{0} clicks!", count);
  });

  alert.SetNegativeButton("Substract", (senderAlert, args) =>
  {
  count--;
  button.Text = string.Format("{0} clicks!", count);
  });

  Dialog dialog = alert.Create();
      dialog.Show();
 };

screenshot:

enter image description here (opens new window)

# Parameters

commonly used Public Method Use
SetTitle(String) Sets Title for the dialog
SetIcon(Drawable) Set Icon for the alert dialog
SetMessage(string) Set the message to display.
SetNegativeButton(String, EventHandler) Set a listener to be invoked when the negative button of the dialog is pressed.
SetPositiveButton(String, EventHandler) Set a listener to be invoked when the positive button of the dialog is pressed.
SetNeutralButton(String, EventHandler) Set a listener to be invoked when the neutral button of the dialog is pressed.
SetOnCancelListener(IDialogInterfaceOnCancelListener) Sets the callback that will be called if the dialog is canceled.
SetOnDismissListener(IDialogInterfaceOnDismissListener) Sets the callback that will be called when the dialog is dismissed for any reason.
Show() Creates a AlertDialog with the arguments supplied to this builder and Dialog.Show's the dialog.

# Remarks

Requirements

Namespace: Android.App

Assembly: Mono.Android (in Mono.Android.dll)

Assembly Versions: 0.0.0.0

Public Constructors

AlertDialog.Builder(Context) :-

Constructor using a context for this builder and the AlertDialog it creates.

AlertDialog.Builder(Context, Int32) :-

Constructor using a context and theme for this builder and the AlertDialog it creates.

Using Material Design AlertDialog

In order to use the modern AlertDialog:

  1. Install Support v7 AppCompat library from the NuGet packages
  2. Replace AlertDialog with Android.Support.V7.App.AlertDialog or add the following statement at the top to make your dialog shine.

       using AlertDialog = Android.Support.V7.App.AlertDialog;