Alerts

Como se muestra en la documentación de Google de Material Design.

Los alerts son interrupciones urgentes, requieren de aceptación, que informan al usuario acerca de una situación.

¿Cómo se añade?

I. En tu archivo build.gradle añade la última versión de la librería appcompat.

dependencies {  
    compile 'com.android.support:appcompat-v7:X.X.X' // X.X.X especifica la version
}

II. Haz que tu activity extienda de: android.support.v7.app.AppCompatActivity.

public class MainActivity extends AppCompatActivity {  
    ...
}

III. Para crear tu dialog usa android.support.v7.app.AlertDialog.Builder.

private void showLocationDialog() {  
    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    builder.setTitle(getString(R.string.dialog_title));
    builder.setMessage(getString(R.string.dialog_message));

    String positiveText = getString(android.R.string.ok);
    builder.setPositiveButton(positiveText,
            new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // Lógica de la acción positiva
        }
    });

    String negativeText = getString(android.R.string.cancel);
    builder.setNegativeButton(negativeText,
            new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // Lógica de la acción negativa
        }
    });

    AlertDialog dialog = builder.create();
    // display dialog
    dialog.show();
}

¿Cómo estilizarlo?

I. Declara tu fichero personalizado drawable.xml para el fondo del dialog.

<?xml version="1.0" encoding="utf-8"?>  
<!-- From: support/v7/appcompat/res/drawable/abc_dialog_material_background_light.xml -->  
<inset xmlns:android="http://schemas.android.com/apk/res/android"  
    android:insetLeft="16dp"
    android:insetTop="16dp"
    android:insetRight="16dp"
    android:insetBottom="16dp">

    <shape android:shape="rectangle">
        <corners android:radius="2dp" />
        <solid android:color="@color/indigo" />
    </shape>

</inset>  

II. Declara estilos personalizados en tu fichero styles.xml.

<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">  
    <!--buttons color-->
    <item name="colorAccent">@color/pink</item>
    <!--title and message color-->
    <item name="android:textColorPrimary">@android:color/white</item>
    <!--dialog background-->
    <item name="android:windowBackground">@drawable/background_dialog</item>
</style>  

III. Crea tu dialog y usa style como parámetro en AlertDialog.Builder.

AlertDialog.Builder builder =  
        new AlertDialog.Builder(this, R.style.MyDialogTheme);
...
AlertDialog dialog = builder.create();  
// display dialog
dialog.show();  

También puedes dar estilo al dialog en tu tema del activity a través del atributo alertDialogTheme.

Escrito originalmente por Volodymyr Yatsykiv en MaterialDoc