TỔNG QUAN
Dialog là một cửa sổ
nhỏ hiển thị trên activity hiện hành, dùng để thông
báo hay cung cấp một vài chức năng nhỏ đến người sử dụng.
Các loại Dialog:
AlertDialog: hiển thị thông báo đến người dùng, có chứa
một số đối tượng điều khiển
như: Button, CheckBox, Radio Button, v.v…
ProgressDialog: hiển thị tiến độ một công việc nào đó.
DatePickerDialog: cho phép người dùng chọn lịch ngày.
TimePickerDialog: cho phép người dùng chọn giờ
Để tạo Dialog,
Android hỗ trợ 2 cách sau:
Tạo trong sự kiện onCreateDialog(int).
Tạo khi cần hiển thị Dialog. Android
khuyến khích sử dụng sự kiện onCreate(int).
ALERTDIALOG
Giao diện hiển thị của
nó gồm nhiều thành phần như sau:
Tiêu đề.
Thông điệp thông báo.
Buttons.
Danh sách chứa các CheckBox hay Radio Button.
Để khởi tạo
AlertDialog, ta phải sử dụng lớp con là AlertDialog.Builder:
AlertDialog.Builder build
= new AlertDialog.Builder(context)
Sau khi build xong,
thì gọi create để tạo object của AlertDialog từ builder đó:
AlertDialog ad = build.create()
Mục
đích
|
Phương
thức/Đối tượng
|
Tạo
đốitượng để xây dựng AlertDialog
|
AlertDialog.Builder
builder = new AlertDialog.Builder(this);
|
Thiết
lập tiêu đề
|
setTitle(CharSequence title) hoặc setTitle(int
titleId)
|
Thiết
lập thông điệp
|
setMessage(CharSequence message) hoặc setMessage(int
messageId)
|
Thiết
lập icon
|
setIcon(Drawable icon) hoặc setIcon(int iconId)
|
Thiết
lập danh sách
|
setItems(CharSequence[] items,
DialogInterface.OnClickListener listener) hoặc
setItem(int
itemsId, DialogInterface.OnClickListener listener)
|
Thiết
lập danh sách chứa Radio Buttons
|
setSingleChoiceItems(CharSequence[] items, int
checkedItem, DialogInterface.OnClickListener
listener) hoặc
setSingleChoiceItems(int itemsId, int
checkedItem,DialogInterface.OnClickListener listener)
|
Thiết
lập danh sách chứa CheckBox
|
setMultiChoiceItems(CharSequence[] items, boolean[]
checkedItems,
DialogInterface.OnClickListener listener) hoặc
setMultiChoiceItems(int itemsId,
boolean checkedItems,DialogInterface.OnClickListener listener)
|
Thiết
lập Positive Button
|
setPositiveButton(CharSequence text,
DialogInterface.OnClickListener listener) hoặc
setPositiveButton(int textId, DialogInterface.OnClickListenerlistener)
|
Thiết
lập Negative Button
|
setNegativeButton(CharSequence text,
DialogInterface.OnClickListener listener) hoặc
setNegativeButton (int textId,DialogInterface.OnClickListener listener)
|
Thiết lập Neutral Button
|
setNeutralButton(CharSequence text,
DialogInterface.OnClickListener listener) hoặc
setNeutralButton (int textId,
DialogInterface.OnClickListenerlistener)
|
|
|
PROGRESSDIALOG
ProgressDialog là loại Dialog dùng
để hiển thị tiến độ thực hiện một công việc nào đó . Dạng Dialog này được tạo
ra từ lớp cha là AlertDialog. Ngoài những tính chất riêng, nó cũng kế thừa
nhiều thuộc tính từ lớp cha AlertDialog như : Tiêu đề, Thông điệp, Buttons.
Có 2 dạng
ProgressDialog:
Dạng Spin
Dạng Horizontal
Khởi
tạo ProgressDialog như sau:
ProgressDialogmProgressDialog =new ProgressDialog(this);
Các phương thức dùng để thiết
lập ProgressDialog:
setProgressStyle():ProgressDialog.STYLE_SPINNER/ProgressDialog.STYLE_HORIZONTAL.
setTitle(): là phương thức dùng để thiết lập tiêu đề cho
ProgressDialog.
setMessage(): là phương thức dùng để thiết lập thông điệp
cho ProgressDilog.
Riêng
đối với Horizontal ProgressDialog, chúng ta phải thiết lập thêm chiều dài
thanhngang trong Dialog thông qua phương thức setMax()
DATEPICKERDIALOG
DatePickerDialog dùng để chọn
ngày tháng.
Phương thức khởi tạo
DatePickerDialog như sau:
DatePickerDialog(Contextcontext,DatePickerDialog.OnDateSetListenercallback , intyear,intmonthOfYear, intdayOfMonth)
Trong
đó:
context: là ngữ cảnh hiển thị
Dialog. Trong trườnghợp này là Activity hiện hành.
callback: dùng để thiết lập
sự kiện khi người dùngthay đổi ngày trên Dialog.
year: thiết lập năm trên
Dialog.
monthOfYear: thiết lập tháng
trên Dialog.
dayOfMonth:
thiết lập ngày trên Dialog.
TIMEPICKERDIALOG
TimePickerDialog dùng để chọn
ngày tháng.
Phương thức khởi tạo
DatePickerDialog như sau:
TimePickerDialog(Contextcontext,DatePickerDialog.OnDateSetListenercallback , inthourOfDay,intminute,
booleanis24HourView)
Trong đó:
context: là ngữ cảnh hiển thị
Dialog. Trong trường hợp nàylà Activity hiện hành.
callback: dùng để thiết lập
sự kiện khi người dùng thay đổigiờ phút trên Dialog.
hourOfDay: thiết lập giờ trên
Dialog.
minute: thiết lập phút trên
Dialog.
is24HourView: chỉ định giờ
hiển thị theo dạng 24h hay 12h.
CUSTOM DIALOG
Là dạng Dialog có giao diện
theo thiết kế của người lập
trình,có thể bao gồm cả
ImageView, TextView, EditText, v.v…
Các phương thức để thiết lập
Custom Dialog:
dlg = new Dialog(context): cấp phát bộ nhớ cho Dialog.
dlg.setContentView(R.layout.IdDialog): chỉ định giao diện cho Dialog.
dlg.setTitle(): thiết lập tiêu đề cho
Dialog
XỬ LÝ SỰ
KIỆN TRÊN DIALOG
Các Button, Item trên Dialog cũng được xử lýnhư các Button,
Item bình thường.