Toast và Alert Dialog trong ứng dụng Android

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à:

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.

Custom Toast View
Demo Custom Toast View

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.

Alert Dialog
Alert Dialog

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 PositiveNegative. 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é:

Alert Dialog hiển thị trên Android5.1 SdkVersion 23
Alert Dialog hiển thị trên Android5.1 SdkVersion 23

Ý 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.

Tạo AlertDialog với Custom Layout sử dụng XML Layout
Tạo AlertDialog với Custom Layout sử dụng XML Layout

⇒ Lưu ý: Bạn nhớ  chú ý cả Toast 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!!

Gom Marker trong Android với Google Maps Android API – Google Maps Android Marker Clustering Utility Sử dụng SwipeRefreshLayout trong ứng dụng Android Hướng dẫn tạo Material Dialog Bottom Sheet Android Tạo context menu trong Android – ActionBar ActionMode.CallBack Example Retrofit và Volley thư viện nào tốt hơn Hướng dẫn sử dụng thư viện Volley trong Android Tạo Web Service bằng PHP và MYSQL cho ứng dụng di động – Part 2 Tạo Web Service bằng PHP và MYSQL cho ứng dụng di động – Part 1 Hàm chuyển đổi Timestamp thành Datetime trong Android và JavaScript Design Patterns là gì? Tạo Project Android theo mẫu Design Patterns(Part 2)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.