Sự khác biệt giữa một hộp thoại bị loại bỏ hoặc hủy bỏ trong Android là gì?


193

Giống như tiêu đề nói, sự khác biệt giữa một hộp thoại bị loại bỏ hoặc hủy bỏ trong Android là gì?

Câu trả lời:


187

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.


Cảm ơn vi đa trả lơi. Tôi đang cố gắng thiết lập những gì sẽ xảy ra nếu người dùng nhấn nút hủy trên một máy đo ngày. Đầu tiên tôi đã thử sử dụng một trình lắng nghe loại bỏ, và điều đó đã làm việc, nhưng cũng đã xảy ra nếu người dùng chọn một thời gian. Sau đó, tôi đã thử hủy bỏ trình nghe, và nó không bao giờ tắt, ngay cả khi tôi đã hủy bỏ. Bạn có biết tôi nên làm gì không?
Aal

2
Nếu bạn đang sử dụng DatePickerDialog, bạn nên sử dụng OnDatesetListener để được thông báo khi ngày thay đổi. Nếu ai đó nhấp vào nút hủy ... thì nó sẽ không được gọi và hộp thoại sẽ tự biến mất. Đối với việc sử dụng bình thường của DatePickerDialog, bạn không cần phải thiết lập các trình nghe khác.
Lee

FYI, nút quay lại kích hoạt cả người nghe hủy và người nghe loại bỏ.
Đô thị

28

dismisslà 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 dismissDialogtrong Activity, sẽ lần lượt gọi dismisstrên Dialog.

Các cancelphươ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 Dialoglà 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.OnDateSetListenerchỉ 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ề Dialogs.


Bạn cũng có thể gọi cancelphương thức. Có hai người nghe khác nhau để giảm bớt và hủy bỏ.
creativecreatorormaybenot

12

DismissGọ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 .

CancelGọ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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.