Android. Как показать Alert Dialog

Создание Alert Dialog очень просто. В этом уроке я расскажу вам как создавать различные оповещения в виде Alert Dialog с одной кнопкой (ДА), две кнопки (ДА и НЕТ) и три кнопки (ДА, НЕТ и ОТМЕНА).

 

Подготовительные работы

Шаг 1.

В папке res/ вы должны создать drawable с именем drawable(папка).

Шаг 2.

Добавить в папку drawable 3 изображения которые будут отображатся на Alert окнах в качестве предупреждений.

Шаг 3.

Создать Activity -> MyActivity и View к этому Activity.

В результате ваше приложение должно выглядеть так:

 

Сама View:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Показать Alert"
            android:onClick="showAlertWithOneButton"
            android:id="@+id/button" android:layout_gravity="center"/>
    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Показать Alert с двумя кнопками"
            android:onClick="showAlertWithTwoButton"
            android:id="@+id/button1" android:layout_gravity="center"/>
    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Показать Alert с тремя кнопками"
            android:onClick="showAlertWithThreeButton"
            android:id="@+id/button2" android:layout_gravity="center"/>
</LinearLayout>

Alert Dialog с одной кнопкой

Следующий код создает простое предупреждение с одной кнопкой.

public void showAlertWithOneButton(View v){
    AlertDialog alertDialog = new AlertDialog.Builder(MyActivity.this).create();

    // Указываем Title
    alertDialog.setTitle("Информационое сообщение");

    // Указываем текст сообщение
    alertDialog.setMessage("Welcome to devcolibri.com");

    // задаем иконку
    alertDialog.setIcon(R.drawable.tick);

    // Обработчик на нажатие OK
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            // Код который выполнится после закрытия окна
            Toast.makeText(getApplicationContext(), "Вы нажали OK", Toast.LENGTH_SHORT).show();
        }
    });

    // показываем Alert
    alertDialog.show();
}

Результат:

 

Alert Dialog с двумя кнопками

Следующий код создает вопросительное предупреждение об удалении файла с двумя кнопками.

public void showAlertWithTwoButton(View v){

    AlertDialog.Builder alertDialog = new AlertDialog.Builder(MyActivity.this);
    // Указываем Title
    alertDialog.setTitle("Подтвердить удаление...");

    // Указываем текст сообщение
    alertDialog.setMessage("Вы уверены, что хотите это удалить?");

    // задаем иконку
    alertDialog.setIcon(R.drawable.delete);

    // Обработчик на нажатие ДА
    alertDialog.setPositiveButton("ДА", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog,int which) {
            // Код который выполнится после закрытия окна
            Toast.makeText(getApplicationContext(), "Вы нажали ДА", Toast.LENGTH_SHORT).show();
        }
    });

    // Обработчик на нажатие НЕТ
    alertDialog.setNegativeButton("НЕТ", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            // Код который выполнится после закрытия окна
            Toast.makeText(getApplicationContext(), "Вы нажали НЕТ", Toast.LENGTH_SHORT).show();
            dialog.cancel();
        }
    });

    // показываем Alert
    alertDialog.show();
}

 Результат:

 

Alert Dialog с тремя кнопками

Следующий код создает вопросительное предупреждение об сохранении файла с тремя кнопками.

public void showAlertWithThreeButton(View v){
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(MyActivity.this);

    // Указываем Title
    alertDialog.setTitle("Сохранение файла ...");

    // Указываем текст сообщение
    alertDialog.setMessage("Вы хотите сохранить этот файл?");

    // задаем иконку
    alertDialog.setIcon(R.drawable.save);

    // Обработчик на нажатие ДА
    alertDialog.setPositiveButton("ДА", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            // User pressed YES button. Write Logic Here
            Toast.makeText(getApplicationContext(), "Вы нажали ДА",
                    Toast.LENGTH_SHORT).show();
        }
    });

    // Обработчик на нажатие НЕТ
    alertDialog.setNegativeButton("НЕТ", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            // User pressed No button. Write Logic Here
            Toast.makeText(getApplicationContext(), "Вы нажали НЕТ", Toast.LENGTH_SHORT).show();
        }
    });

    // Обработчик на нажатие ОТМЕНА
    alertDialog.setNeutralButton("ОТМЕНА", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            // User pressed Cancel button. Write Logic Here
            Toast.makeText(getApplicationContext(), "Вы нажали ОТМЕНА",
                    Toast.LENGTH_SHORT).show();
        }
    });

    // показываем Alert
    alertDialog.show();
}

 Результат:

 Вот весь MyActivity.java

package com.example.AlertDialog;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MyActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public void showAlertWithOneButton(View v){
        AlertDialog alertDialog = new AlertDialog.Builder(MyActivity.this).create();

        // Указываем Title
        alertDialog.setTitle("Информационое сообщение");

        // Указываем текст сообщение
        alertDialog.setMessage("Welcome to devcolibri.com");

        // задаем иконку
        alertDialog.setIcon(R.drawable.tick);

        // Обработчик на нажатие OK
        alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // Код который выполнится после закрытия окна
                Toast.makeText(getApplicationContext(), "Вы нажали OK", Toast.LENGTH_SHORT).show();
            }
        });

        // показываем Alert
        alertDialog.show();
    }

    public void showAlertWithTwoButton(View v){

        AlertDialog.Builder alertDialog = new AlertDialog.Builder(MyActivity.this);
        // Указываем Title
        alertDialog.setTitle("Подтвердить удаление...");

        // Указываем текст сообщение
        alertDialog.setMessage("Вы уверены, что хотите это удалить?");

        // задаем иконку
        alertDialog.setIcon(R.drawable.delete);

        // Обработчик на нажатие ДА
        alertDialog.setPositiveButton("ДА", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog,int which) {
                // Код который выполнится после закрытия окна
                Toast.makeText(getApplicationContext(), "Вы нажали ДА", Toast.LENGTH_SHORT).show();
            }
        });

        // Обработчик на нажатие НЕТ
        alertDialog.setNegativeButton("НЕТ", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // Код который выполнится после закрытия окна
                Toast.makeText(getApplicationContext(), "Вы нажали НЕТ", Toast.LENGTH_SHORT).show();
                dialog.cancel();
            }
        });

        // показываем Alert
        alertDialog.show();
    }

    public void showAlertWithThreeButton(View v){
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(MyActivity.this);

        // Указываем Title
        alertDialog.setTitle("Сохранение файла ...");

        // Указываем текст сообщение
        alertDialog.setMessage("Вы хотите сохранить этот файл?");

        // задаем иконку
        alertDialog.setIcon(R.drawable.save);

        // Обработчик на нажатие ДА
        alertDialog.setPositiveButton("ДА", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // Код который выполнится после закрытия окна
                Toast.makeText(getApplicationContext(), "Вы нажали ДА",
                        Toast.LENGTH_SHORT).show();
            }
        });

        // Обработчик на нажатие НЕТ
        alertDialog.setNegativeButton("НЕТ", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // Код который выполнится после закрытия окна
                Toast.makeText(getApplicationContext(), "Вы нажали НЕТ", Toast.LENGTH_SHORT).show();
            }
        });

        // Обработчик на нажатие ОТМЕНА
        alertDialog.setNeutralButton("ОТМЕНА", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // Код который выполнится после закрытия окна
                Toast.makeText(getApplicationContext(), "Вы нажали ОТМЕНА",
                        Toast.LENGTH_SHORT).show();
            }
        });

        // показываем Alert
        alertDialog.show();
    }

}
Урок создан: 05 марта 2013 | Просмотров: 9523 | Автор: Александр Барчук | Правила перепечатки


Добавить комментарий

Добавить комментарий

Ваш e-mail не будет опубликован.

Комментарии:

  • 04 мая 2013 в 01:19

    Сергей

    не помешало бы добавить кастомизацию диалогов…. так чтобы полностью переделанный

    • 04 мая 2013 в 10:45

      Александр Барчук

      Полностью с вами согласен Сергей.
      Планирую написать небольшой урок по созданию кастомных компонентов.