Câu trả lời:
Thông thường, một hộp thoại sẽ bị loại bỏ khi công việc của nó kết thúc và nó sẽ bị xóa khỏi màn hình. Một hộp thoại bị hủy khi người dùng muốn thoát khỏi hộp thoại và nhấn nút Quay lại.
Ví dụ: bạn có hộp thoại Có / Không chuẩn trên màn hình. Nếu người dùng nhấp vào Không, thì hộp thoại sẽ bị loại bỏ và giá trị cho Không được trả về cho người gọi. Nếu thay vì chọn Có hoặc Không, người dùng nhấp vào Quay lại để thoát hộp thoại thay vì chọn, thì hộp thoại sẽ bị hủy và không có giá trị nào được trả về cho người gọi.
dismiss
là một cái gì đó bạn phải gọi một cách rõ ràng trong mã của bạn, thường là để đáp ứng với một sự kiện nhấp chuột vào một nút trong của bạn Dialog
. Nếu bạn thích, bạn có thể gọi dismissDialog
trong Activity
, sẽ lần lượt gọi dismiss
trên Dialog
.
Các cancel
phương pháp duy nhất thực hiện khi nó rõ ràng được gọi là trong mã của bạn, hoặc khi người dùng nhấn nút BACK khi hủy ngang của bạn Dialog
là mở (như @Lee lưu ý).
Nếu bạn đang sử dụng a DatePicker
, thì tất cả điều này vẫn là trường hợp. Như @Lee đã nói, DatePickerDialog.OnDateSetListener
chỉ phát hiện khi người dùng đã chọn một ngày từ DatePicker
.
Các nhà phát triển Android Reference cung cấp thông tin thêm về Dialog
s.
cancel
phương thức. Có hai người nghe khác nhau để giảm bớt và hủy bỏ.
Dismiss
Gọi cách chức sẽ loại bỏ hộp thoại khỏi màn hình. Phương pháp này có thể được gọi một cách an toàn từ bất kỳ chủ đề. Lưu ý rằng bạn không nên ghi đè phương thức này để dọn dẹp khi hộp thoại bị loại bỏ, thay vào đó hãy thực hiện điều đó trong onStop .
Cancel
Gọi hủy, hủy hộp thoại. Điều này về cơ bản giống như gọi hàm notify () , nhưng nó cũng sẽ gọi DialogInterface.On HủyListener của bạn , nếu đã đăng ký.
Hide
Phương pháp này ẩn hộp thoại, nhưng không loại bỏ nó.
Và để biết thêm xem tại đây