AlertDialog

Code: Default | Auth: 03cd82

Android AlertDialog là một widget dùng để hiển thị hộp thoại tương tác với người dùng.

AlertDialog được thiết kế gồm 3 phần: Tiêu đề, vùng nội dung, các nút bấm tương tác

Cấu trúc cây kế thừa lớp AlertDialog:   Object <= Dialog <= AlertDialog.

Để tạo AlertDialog cần sử dụng lớp Builder để xây dựng cấu trúc cho Dialog. 

Các phương thức thường sử dụng tạo Dialog

Method Description
public AlertDialog.Builder setTitle(CharSequence) Dùng thiết lập tiêu đề cho AlertDialog.
public AlertDialog.Builder setMessage(CharSequence) Dùng viết nội dung cho AlertDialog.
public AlertDialog.Builder setIcon(int) Dùng tạo biểu tượng cho AlertDialog.
public AlertDialog.Builder setPositiveButton(CharSequence text, final OnClickListener listener) Viết sự kiện cho nút bấm chính (ok)
public AlertDialog.Builder setNegativeButton(CharSequence text, final OnClickListener listener)  Viết sự kiện cho nút bấm phụ (cancel)

 

Tạo AlertDialog đơn giản

Trong Activity bạn tạo một nút bấm để thử nghiệm. Trong sự kiện bấm chuột của nút bấm bạn viết code sau:

 

	AlertDialog.Builder builder = new AlertDialog.Builder(this);

	builder.setMessage("Bạn có đồng ý làm gì đó không?");

	builder.setTitle("Thông báo");

	builder.setPositiveButton("Đồng ý", new DialogInterface.OnClickListener() {
		@Override
		public void onClick(DialogInterface dialog, int which) {
			Toast.makeText(getBaseContext(), "Bạn đã Đồng ý", Toast.LENGTH_SHORT).show();
		}
	});

	builder.setNegativeButton("Bỏ qua", new DialogInterface.OnClickListener() {
		@Override
		public void onClick(DialogInterface dialog, int which) {
			Toast.makeText(getBaseContext(), "Buồn quá, bạn đã bỏ qua", Toast.LENGTH_SHORT).show();
		}
	});

	// khởi tạo thành dialog
	AlertDialog dialog = builder.create();
	dialog.show();

 

Full code demo

Code layout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical">

  

    <Button
        android:id="@+id/btn_alert"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Save data"
        android:onClick="ClickButton"
        />

</LinearLayout>

Code java

package com.spx.qlsv01;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;


public class DemoDialog extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_demo_dialog);

        

    }
    public void ClickButton(View view){

        
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("Bạn có đồng ý làm gì đó không?");
        builder.setTitle("Thông báo");
        builder.setPositiveButton("Đồng ý", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getBaseContext(), "Bạn đã Đồng ý", Toast.LENGTH_SHORT).show();
            }
        });
        builder.setNegativeButton("Bỏ qua", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getBaseContext(), "Buồn quá, bạn đã bỏ qua", Toast.LENGTH_SHORT).show();
            }
        });

        // khởi tạo thành dialog
        AlertDialog dialog = builder.create();
        dialog.show();
 

    }
}

Kết quả chạy như sau:

AlertDialog