Tìm hiểu các loại Dialog trong Android

3486

1: Giới thiệu

Dialog là một cửa sổ nhỏ có chức năng hiện thị thông báo, yêu cầu người dùng đưa ra một quyết định nào đó như nhập thông tin, xác nhận….

Dialog không lấp kín màn hình, thường để sử dụng được dialog người dùng cần phải thực hiện một hành động trước đó để kích hoạt.

2: Thiết kế một Dialog

Một Dialog cơ bản sẽ bao gồm 3 thông tin chính: Title, nội dung, hành động.

Theo khuyến cáo của google người lập trình không nên tạo một Dialog trực tiếp mà nên tiếp cận dialog thông qua  lớp DialogFrament, việc sử dụng lớp này sẽ giúp tối ưu dialog bằng cách quản lý vòng đời của nó một cách tốt nhất.

Ngoài những phương thức này, bạn có thể sử dụng các hàm khác được cung cấp bởi lớp Builder để tùy chỉnh Alert Dialog của mình. Bảng dưới liệt kê các phương thức này:

Stt Phương thức type & Miêu tả
1 setIcon(Drawable icon)Phương thức này thiết lập icon của Alert Dialog
2 setCancelable(boolean cancel able)Phương thức này thiết lập thuộc tính mà Dialog là bị cancel hoặc không
3 setMessage(CharSequence message)Phương thức này thiết lập thông điệp để được hiển thị trong Alert Dialog
4 setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, DialogInterface.OnMultiChoiceClickListener listener)Phương thức này thiết lập danh sách item để được hiển thị trong Dialog. Tùy chọn sẽ được thông báo bởi Listener
5 setOnCancelListener(DialogInterface.OnCancelListener onCancelListener)Phương thức này thiết lập hàm callback sẽ được gọi nếu Dialog bị cancel
6 setTitle(CharSequence title)Phương thức này thiết lập Title xuất hiện trong Dialog

 

Dialog Fragment

Trước khi đi vào một ví dụ cụ thể, chúng ta cần biết về Dialog Fragment. Dialog Frament là một Fragment mà có thể hiển thị fragment trong hộp thoại Dialog.

Example: Các loại Dialog trong android

cac-loai-dialog-trong-android

  1. Dialog Basic

cac-loai-dialog-trong-android1

Cách tạo:

  • Tạo một Java Class mới có tên Dialog Basic.
  • Extents đến lớp DialogFragment như giới thiệu trong phần lý thuyết.
  • Khởi tạo đối tượng AlertDialog.Buidlder.
  • Cài đặt các thuộc tính: Title, Message,Icon,Button cho dialog.

Hiển thị Dialog , các Dialog khác hiển thị tương tự bằng cách thay tên JavaClass tương ứng:

2.  TraditionnalSingleChoice

cac-loai-dialog-trong-android2

Cách tạo:

  • Tạo một JavaClass với tên tương ứng.
  •  Extents đến lớp  DialogFragment .
  •  Tạo một danh sách các giá trị.
  •  Sử dụng hàm setItems truyền danh sách các giá trị vào.
  •  Cài đặt sự kiện click cho  các Item, hiển thị Toast khi click vào Item tương ứng.

3 PresistentSingleChoice

cac-loai-dialog-trong-android3

  • Tạo một JavaClass với tên tương ứng.
  • Extents đến lớp  DialogFragment .
  • Tạo một danh sách các giá trị.
  • Sử dụng hàm setSinglechoiceItem(), truyền danh sách vào, set giá trị hiển thị mặc định.
  • Cài đặt sự kiện khi click vào các Button hiện Toast tương ứng.
  • Để có thể hiển thị Toast tương ứng, sử dụng một biến để lưu lại giá trị khi click vào Item và show giá trị đó ra.

MultiChoiceList

cac-loai-dialog-trong-android4

  • Tạo một JavaClass với tên tương ứng.
  • Extents đến lớp  DialogFragment .
  • Tạo một danh sách các giá trị.
  • Tạo một danh sách kiểu boolean với true là giá trị được chọn, false là chưa chọn.
  • Sử dụng hàm setMultiChoiceItems(), truyền danh sách vào các tùy trọn, danh sáchcác tùy chọn mặc định
  • Cài đặt sử kiện cho các Button.

5 Custom Dialog

cac-loai-dialog-trong-android5

  • Tạo một JavaClass với tên tương ứng.
  • Extents đến lớp  DialogFragment .
  • Tạo một layout tương ứng với Dialog
  • Sử dụng hàm setView() cho AlerDialog.Builder với layout đã tạo.

Thiết kế layout:

Sử dụng LayoutInflater để nhận về layout.