Dialog trong Android (Bài 8)
Dialog trong Android là một cửa sổ nhỏ dùng để nhắc người dùng đưa ra quyết định hoặc nhập thông tin.
Thỉnh thoảng trong ứng dụng của bạn, nếu bạn muốn hỏi người dùng về quyết định giữa có hoặc không để phản hồi bất kỳ hành động cụ thể nào do người dùng thực hiện, bằng cách giữ nguyên hoạt động và không thay đổi màn hình, bạn có thể sử dụng hộp thoại cảnh báo (Alert Dialog)
Cũng có trường hợp trong ứng dụng của bạn cho phép người dùng lựa chọn một hoặc nhiều phương án, bạn có thể sử dụng hộp thoại hiển thị danh sách (List Dialog)
Dialog trong Android – Alert Dialog
Để hiển thị hộp thoại cảnh báo (Alert Dialog), bạn cần tạo một đối tượng của AlertDialogBuilder theo câu lệnh sau
AlertDialog.Builder b = new AlertDialog.Builder(this);
Bây giờ, bạn có thể thiết lập nút đồng ý (yes) hoặc nút không đồng ý (no) bằng cách sử dụng đối tượng đã tạo ở trên.
//Nút đồng ý b.setPositiveButton(String caption, listener); //Nút không đồng ý b.setNegativeButton(String caption, listener);
Một số phương thức thường dùng với Alert Dialog
setIcon(Drawable icon): Phương thứ này thiết lập icon cho AlertDialog
setTitle(String title): Phương thức này thiết lập tiêu đề.
setMessage: Phương thức này thiết lập thông điệp.
Ví dụ tạo AlertDialog trong Android
//Tạo đối tượng
AlertDialog.Builder b = new AlertDialog.Builder(this);
//Thiết lập tiêu đề
b.setTitle("Xác nhận");
b.setMessage("Bạn có đồng ý thoát chương trình không?");
// Nút Ok
b.setPositiveButton("Đồng ý", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
finish();
}
});
//Nút Cancel
b.setNegativeButton("Không đồng ý", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
//Tạo dialog
AlertDialog al = b.create();
//Hiển thị
al.show();
Dialog trong Android – List Dialog
Hiển thị danh sách lựa chọn trong dialog. Có 3 loại list dialog được hỗ trợ trong android bao gồm single-choice list, single-choice list (radio buttons) và multiple-choice list (checkboxes).
Tạo single-choice list
//Items
String[] items = {"Rajesh", "Mahesh", "Vijayakumar"};
AlertDialog.Builder b = new AlertDialog.Builder(getActivity());
//Thiết lập title
b.setTitle("Make your selection");
//Thiết lập item
b.setItems(items, new DialogInterface.OnClickListener() {
//Xử lý sự kiện
public void onClick(DialogInterface dialog, int which) {
}
});
//Hiển thị dialog
b.show();
Tạo single-choice list (radio buttons)
//Items
String[] datas = {"Male", "Female"};
AlertDialog.Builder b = new AlertDialog.Builder(this);
b.setSingleChoiceItems(datas, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
b.show();
Tạo multiple-choice list (checkboxes)
String[] datas = {"Football", "Travel", "Fashion"};
ArrayList al = new ArrayList();
AlertDialog.Builder b = new AlertDialog.Builder(getActivity());
b.setMultiChoiceItems(datas, null,new DialogInterface.OnMultiChoiceClickListener(){
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
//Nếu người dùng chọn
if (isChecked) {
//Thêm người dùng người dùng chọn vào ArrayList
al.add(datas[which]);
}
}
});
b.show();
Dialog trong Android – Toast
Toast có thể được sử dụng để hiển thị thông tin trong một khoảng thời gian ngắn. Toast có chứa thông báo được hiển thị nhanh chóng và biến mất sau một thời gian.
Câu lệnh tạo Toast trong android
Toast.makeText(getApplicationContext(), String text, int duration)
Trong đó duration hoặc là LENGTH_LONG hoặc là LENGTH_SHORT
Dialog trong Android – Bài tập thực hành
Người dùng sau khi nhập tên, tuổi, chọn giới tính, sở thích và chọn “CREATE”, ứng dụng sẽ lưu thông tin vào tập tin txt.
Khi chọn “CHOOSE GENDER”, kết quả sau khi chọn sẽ hiển thị tại “Gender”
Khi chọn “CHOOSE HOBBY”, kết quả sau khi chọn sẽ hiển thị tại “Hobby”
Lưu ý
1/ Họ tên và tuổi yêu cầu người dùng phải nhập. Trường hợp người dùng không nhập, hiển thị thông báo phù hợp và đặt con trỏ vào ô chưa được nhập.
2/ Tuổi chỉ được nhập số.
3/ Khi người dùng chọn “CLOSE”, ứng dụng sẽ hiển thị hộp thoại xác nhận. Trường hợp người dùng chọn “OK”, ứng dụng sẽ bị đóng. Nếu chọn “CANCEL”, hộp thoại xác nhận sẽ biến mất.