Sử dụng hộp thoại (dialog)

Một phần của tài liệu Bài giảng lập trình di động android (Trang 107 - 109)

Trong rất nhiều trường hợp chúng ta cần hiển thị thông báo, hỏi xác nhận của người dùng, hiển thị trạng thái chờ… ở dạng hộp thoại nhanh hiện lên trên Activity hiện tại, mà không cần mở ra Activity mới, khi đó ta cần nạp chồng hàm onCreateDialog() của Activity.

Ví dụ dưới đây mô tả cách tạo một hộp thoại cơ bản như vậy: CharSequence[] items = { "Google", "Apple", "Microsoft" };

boolean[] itemsChecked = new boolean [items.length]; @Override

protected Dialog onCreateDialog(int id) { switch (id) {

case 0:

return new AlertDialog.Builder(this) .setIcon(R.mipmap.ic_launcher) .setTitle("This is a dialog") .setPositiveButton("OK",

new DialogInterface.OnClickListener() {

ThS. Bùi Trung Úy 108 Toast.makeText(getBaseContext(), "OK clicked!",

Toast.LENGTH_SHORT).show(); }

})

.setNegativeButton("Cancel",

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) { Toast.makeText(getBaseContext(), "Cancel clicked!", Toast.LENGTH_SHORT).show();

} })

.setMultiChoiceItems(items, itemsChecked,

new DialogInterface.OnMultiChoiceClickListener() { public void onClick(DialogInterface dialog, int which, boolean isChecked) {

Toast.makeText(getBaseContext(), items[which] +

(isChecked ? " checked!":" unchecked!"), Toast.LENGTH_SHORT).show(); }

}).create(); }

return null; }

Để hiển thị dialog ta viết sự kiện cho một nút bấm và gọi hàm showDialog(id). Kết quả chạy ứng dụng và bấm vào nút, hộp thoại như hình bên dưới sẽ hiện ra:

Trong ví dụ trên ta đã nạp chồng phương thức onCreateDialog(int id) để hiển thị hộp thoại khi có yêu cầu. Trong Activity có thể hiển thị nhiều hộp thoại khác nhau tùy vào ngữ cảnh xử lý như hộp thoại thông báo, hộp thoại xác nhận, hộp thoại tiến trình…, tham số id trong phương thức onCreateDialog là để phân biệt hộp thoại nào cần được hiện lên.

Để kích hoạt yêu cầu mở hộp thoại, ta gọi phương thức showDialog(id). Trong hàm onCreateDialog, tùy thuộc vào id truyền vào mà ta hiển thị hộp thoại tương ứng, trong ví dụ trên là hộp thoại có id = 0. Trong trường hợp này ta sử dụng loại hộp thoại đơn giản nhất là AlertDialog, để tạo ra một hộp thoại loại này, ta tạo ra một object của class AlertDialog.Builder và gọi phương thức create() của nó. Đoạn code trên thiết lập

ThS. Bùi Trung Úy 109

2 nút bấm cho hộp thoại cho trường hợp đồng ý (nút “OK” – setPositiveButton) và hủy bỏ (nút “Cancel” – setNegativeButton), cũng như thiết lập các ô checkbox (setMultiChoiceItems)

Các hàm xử lý sự kiện trong Dialog trong ví dụ chỉ đơn giản là hiển thị lên màn hình dòng thông báo dạng text trong một khoảng thời gian ngắn. Dạng thông báo này

trong Android gọi là Toast - là đoạn chữ hiển thị ở giữa, phía dưới màn hình trong

khoảng vài giây. Toast thường được dùng để hiển thị các loại thông báo ngắn, ít quan trọng như thông báo SMS, lưu dữ liệu thành công,…

Một phần của tài liệu Bài giảng lập trình di động android (Trang 107 - 109)

Tải bản đầy đủ (PDF)

(133 trang)