Như các bạn thấy thì hầu như trong tất cả các ứng dụng android hiện nay, không có ứng dụng nào mà không xuất ra hay hiển thị một thông báo hoặc kiểm tra một cái gì đó trong quá trình người dùng tương tác sử dụng cả. Vì thế hôm nay mình sẽ nói sơ qua về Toast Notification và Alert Dialog trong ứng dụng Android.
Toast và Alert Dialog chính là 2 cách hiển thị thông báo cho người dùng được sử dụng nhiều nhất trong android, khi hiển thị sẽ không ảnh hưởng gì đến ứng dụng cả và các tiến trình trong ứng dụng vẫn cứ tiếp tục làm việc. Ngoài ra còn có 1 cách hiển thị thông báo mà người dùng rất hay gặp đó là Status Bar Notifications ví dụ như khi facebook có thông báo nó sẽ hiển thị thông báo ở trên thanh trạng thái vậy, đó chính là Notifications trong android , mình sẽ có một ví dụ demo riêng về Status Bar Notifications trong các bài viết sau.
Có thể bạn sẽ muốn xem qua:
Toast
Toast là gì?
Toast chính là một khối xây dựng cơ bản(gọi tắt là View) có chứa một thông điệp nhỏ, hiển thị nhanh chóng cho người sử dụng biết, nó giống như một thông báo nổi trên ứng dụng.
- Toast có thể được tạo và hiển thị trong Activity hoặc trong Servive.
- Không cho phép người sử dụng tương tác
- Khi hiển thị sau khoảng thời gian nào đó sẽ tự đóng lại
Toast có 2 giá trị mặc định và ta nên sử dụng 2 giá trị này, không nên gõ con số cụ thể nào vào cả, hằng số Toast.LENGTH_SHORT hiển thị trong 2 giây, Toast.LENGTH_LONG hiển thị trong 3.5 giây.
Cách tạo Toast
Cách tạo Toast rất đơn giản chỉ với 1 dòng lệnh :
Toast.makeText(YourActivity.this, “Nội dung bạn muốn hiển thị”, Toast.LENGTH_SHORT);
Câu lệnh trên là cách nhanh nhất để hiển thị Toast, còn nếu đầy đủ là:
Context context = getApplicationContext(); CharSequence text = "Hello toast!"; int duration = Toast.LENGTH_SHORT; Toast toast = Toast.makeText(context, text, duration); toast.show();
Thiết lập vị trí hiển thị của Toast
Mặc định Toast sẽ hiển thị ở dưới cùng của màn hình theo chiều ngang, nhưng bạn có tể thay đổi vị trí này bằng cách setGravity(int, int, int) cho nó. Ví dụ mình muốn cho nó hiển thị ở phía trên bên trái vị trí x=0, y=0 tức là nó sẽ sát với cạnh trái và trên cùng của điện thoại:
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
Nếu bạn muốn di chuyển vị trí của nó qua bên phải ,bạn hãy làm tăng giá trị của tham số thứ hai. Để di chuyển nó xuống dưới 1 chút, hãy làm tăng giá trị của tham số cuối cùng.
Tạo một Custom Toast View
Ngoài ra thì bạn có thể Custom Toast View, làm cho nó hiển thi trông đẹp hơn..ở phần này mình cũng sẽ có một bài demo riêng cho các bạn.
Khi nào bạn nên sử dụng Toast?
Theo mình thì tùy bạn, bạn có thể sử dụng trong trường hợp hiển thông báo trong các mục thiết lập thông số cấu hình, hay đơn giản chỉ là hiển thị lên để xem thông tin tạm thời nào đó (giống như để kiểm tra một vấn đề xảy ra chẳng hạn).
Alert Dialog
Alert Dialog là gì?
Alert Dialog là một cửa sổ nhỏ có chức năng nhắc người dùng đưa ra một quyết định hoặc nhập thông tin bổ sung. Alert Dialog không lấp kín màn hình và thường được sử dụng cho các sự kiện yêu cầu người dùng phải thực hiện một hành động trước khi có thể đi tiếp.
Hình trên là ví dụ về Alert Dialog và theo mình nhớ thì 1 Alert Dialog có tối đa 3 nút bắt sự kiện thì phải, mình chưa thấy có cái nào 4 nút cả. Ba nút này sẽ có 3 hành động khác nhau và tùy theo phiên bản SDK bạn hướng tới trong ứng dụng mà giao diện của Dialog có thể thay đổi 1 chút:
- Positive: Thường thì bạn nên sử dụng điều này để chấp nhận và tiếp tục với các hành động(như trên hình là Yes).
- Negative: Nút này thường dùng để hủy bỏ hành động(No).
- Neutral: Thường sử dụng khi người sử dụng có thể không muốn thực hiện các hành động, nhưng không nhất thiết muốn hủy. Nó thường xuất hiện giữa các nút Positive và Negative. Ví dụ, các hành động có thể “Nhắc tôi sau này.”
Nhưng bạn cần không quan tâm các nút này nó có ý nghĩa gì, nó thuộc PositiveButton hay NegativeButton vì đó là tùy thuộc bạn chọn, bạn có thể thay đổi bất kỳ, chỉ cần quan tâm bạn viết code cho nó như thế nào thôi.
Tạo một Alert Dialog
Để tạo 1 Alert Dialog đơn giản có 3 nút như hình cuối cùng trên đó bạn có thể xem đoạn code ngắn sau và khi mình click vào từng button mình sẽ cho nó Toast ra tên của từng Button luôn nhé:
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); //thiết lập tiêu đề cho Dialog builder.setTitle("Demo Dialog!!"); //Thiết lập nội dung cho Dialog builder.setMessage("Đây là ví dụ về Dialog trong Android?"); //để thiết lập Icon builder.setIcon(R.mipmap.ic_launcher); builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "Đây là setPositiveButton Dialog", Toast.LENGTH_LONG).show(); } }); builder.setNeutralButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "Đây là setNeutralButton Dialog", Toast.LENGTH_LONG).show(); } }); builder.setNegativeButton("No", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "Đây là setNegativeButton Dialog", Toast.LENGTH_LONG).show(); } }); builder.create().show();
Ý nghĩa của một số hàm có trong đoạn mã trên:
- setTitle : thiết lập tiêu đề cho Dialog
- setMessage: Thiết lập nội dung cho Dialog
- setIcon : để thiết lập Icon
Tạo một Custom Layout cho AlertDialog
Ngoài giao diện mặc định như trên, bạn còn có thể Custom AlertDialog để có thể dùng cho nhiều mục đích khác nhau. Ví dụ như tạo một form login chẳng hạn, phần này mình cũng sẽ có một bài hướng dẫn riêng cho các bạn.
- Tham khảo thêm tài liệu về Dialog tại đây: http://developer.android.com/guide/topics/ui/dialogs.html
- Tham khảo thêm tài liệu về Toast tại đây: http://developer.android.com/guide/topics/ui/notifiers/toasts.html
⇒ Lưu ý: Bạn nhớ chú ý cả Toast và AlertDialog sau khi đã create() thì phải show() thì nó mới hiển thị được nhé. Mình rất chi là hay quên chỗ này nên mình note lại cho các bạn chú ý luôn..Nhiều lúc cứ hỏi tại sao Log không thấy lỗi đâu mà sao nó không hện, nhìn lại mới biết thì ra là mình chưa cho nó show(). Chúc các bạn thành công 😀
Lời kết
Qua bài viết sơ qua về Toast và Alert Dialog trong ứng dụng Android trên mình mong là có thể giúp bạn hiểu hơn một phần nào đó về Toast và Alert Dialog cũng như biết cách sử dụng tạo và sử dụng chúng hợp lý, nếu bạn có bất kỳ góp ý hay chia sẻ gì, mong bạn có thể để lại comment bên dưới hoặc gửi mail về [email protected]. Xin cảm ơn!!