Android

Sử Dụng Dialog Trong Android Phần 1

Giới thiệu

Chắc hẳn các bạn rất quen thuộc với khái niệm Dialog. Dialog trong Android là một hộp thoại hiển thị dùng để thông báo cho người dùng hoặc cho phép người dùng thực hiện một action nào đó. Vây cách sử dụng Dialog trong Android ra sao thì trong bài viết này và một bài viết sau tôi sẽ giới thiệu cho các bạn cách tất tần tật về cách sử dụng Dialog trong Android.

Dialog trong Android

Để hình dung những Dialog được xây dựng trong bài viết các bạn có thể xem video Demo:

Tất cả các Dialog trong Android đều kế thừa từ lớp abstract Dialog

Lớp này define hai phương thức chính:

  • show(): dùng để show Dialog;
  • dismiss(): dùng để đóng Dialog

AlertDialog trong Android

Đây là class mà chúng ta sử dụng thường xuyên để xây dựng Dialog. Với AlertDialog chúng ta có thể show

AlertDialog gồm 3 thành phần chính:

Title

Đây là phần tiêu đề của Dialog, phần tiêu đề bạn cũng có thể set icon.

Content

Đây là thành phần quan trọng nhất của Dialog dùng để hiển thị content của Dialog. Các bạn có thể show bất cứ View nào trong này, ví dụ như một message, một listview (single selection, multiple selection), hay một view mà bạn custom.

Action

Thành phần Action của AlertDialog gồm ba button

  • NegativeButton
    PositiveButton
    NeutralButton

Sử dụng AlertDialog trong Android

Để sử dụng Dialog trong Android bạn phải thông qua một AlertDialog.Builder để set các thành phần cho Dialog sau đó sử dụng phương thức create() để trả về đối để trả về đối tượng Dialog.

Nếu các bạn tinh ý thì có thể nhận ra rằng Builder Pattern được sử dụng trong trường hợp này.

Và dưới đây tôi sẽ giới thiệu một số cách sử dụng AlertDialog

Dialog có content là Message

Tôi giải thích một số đoạn mã trên:

Phương thức setTitle dùng để set tiêu đề cho Dialog

Phương thức setMessage dùng để set message cho Dialog hay gọi là content của Dialog.

Ba phương thức  setXButton dùng để set Listenner cho ba button đã giới thiệu ở trên với hai đối số là

Đối số thứ nhất: Text hiển thị trên Button

Đối số thứ hai Interface xử lý event khi người dùng click vào Button

Sau khi gọi method show() Dialog ở trên chúng ta sẽ thấy kết quả như dưới đây:

dialog-android-0

Chúng ta có thể gọi method dismiss để đóng dialog.

Các bạn thấy rõ ba thành phần của Dialog chưa nào.

Khi bạn chạm ngoài dialog thì dialog sẽ dimiss. Nếu bạn không muốn dismiss dialog khi touch ở ngoài dialog thì có thể set như sau:

Lưu ý: Bạn không nhất thiết phải set đủ 3 thành phần của AlertDialog.

Dialog có content là custom view

Tôi có một view định nghĩa ở file xml như sau:

Và tôi sử dụng view này để làm content cho Dialog thông qua phương thức setView như sau:

Dialog có content là một ListView

Dialog có content là ListView Single Selection

Hai kiểu ListView Multiple ListView và Single Selection tôi đã giới thiệu ở bài ListView Multiple Selection Và ListView Single Selection

Để hiển thị Dialog kiểu Single Selection chúng ta viết như sau:

Dialog có content là ListView Mutiple Selection

Ngoài ra có một số listener khi chúng ta show hay dismiss dialog như dưới đây:

Khi show Dialog

Khi dialog dismiss

Khi dialog cancel

Khi chúng ta nhấn phím trên dialog

Ngoài ra còn một số Dialog cũng được sử dụng phổ biến như ProgressDialog, DatePickerDialog, TimePickerDialog nhưng tôi sẽ giới thiệu ở bài viết sau.

Soure code DialogAndroid

Kết luận

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.