Tôi muốn sử dụng giao diện chất lỏng của AlertDialog.Builder nhưng khi tôi nhận được điểm thêm DismissListener và ShowListener, tôi phải thoát ra và thêm nó vào đối tượng hộp thoại sau khi tạo() trên trình tạo. Có ai biết tại sao họ không ở đó không? Tôi không thể mở rộng nó vì thành viên P tư nhân ... Nó không phải là kết thúc của thế giới hay bất cứ điều gì, tôi chỉ tò mò tại sao nó không có ở đó.Tại sao AlertDialog.Builder không có phương thức setOnDismissListener hoặc setOnShowListener?
5
A
Trả lời
1
Từ mức API 17. bạn có thể sử dụng phương pháp setOnDismissListener (DialogInterface.OnDismissListener onDismissListener)
7
Bạn đã thử phương pháp này ..
AlertDialog dlg = builder.create();
lg.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(final DialogInterface dialog) {
//Do some work
}
});
return dlg;
Các vấn đề liên quan
- 1. Tại sao Android NoSuchMethodException xảy ra tại AlertDialog.Builder setOnDismissListener
- 2. Tại sao XElement không có phương thức GetAttributeValue?
- 3. Tại sao StringBuilder không có phương thức IndexOf?
- 4. Tại sao NSArray không có phương thức firstObject?
- 5. Tại sao ngôn ngữ Python không có phương thức writeln()?
- 6. Tại sao ObservableCollection không có phương thức RemoveAll?
- 7. AlertDialog vs AlertDialog.Builder
- 8. Tại sao có một trình lặp phương thức() trên java.util.Collection
- 9. Tại sao có thể gọi phương thức trên phương thức giao diện Java? [So sánh]
- 10. Tại sao phải có phương thức ClassInitialize là tĩnh?
- 11. Tại sao jQuery không cung cấp phương thức .firstChild?
- 12. Tại sao phương thức TaskFactory.StartNew không phải là chung?
- 13. Tại sao quá tải phương thức không hoạt động bên trong phương thức khác?
- 14. Tại sao Magento có các phương thức _construct và __construct?
- 15. Tại sao C# HashSets có một phương thức Distinct()
- 16. Tại sao có phương thức equals riêng cho các bộ?
- 17. Tại sao loại chuỗi có phương thức .ToString()?
- 18. Phương thức Arduino map() - tại sao?
- 19. Tại sao các phương thức giao diện C# không được khai báo trừu tượng hoặc ảo?
- 20. Tại sao các phương thức lặp lại không thể tham số 'ref' hoặc 'out'?
- 21. Các tham số Boolean trong phương thức. Tại sao không?
- 22. Tại sao phương thức chain() Underscore.js không phải là lười?
- 23. Android: Tại sao phương thức onClick không hoạt động?
- 24. Có thể thêm phương thức vào một lớp EXISTING khi chạy không? tại sao hay tại sao không?
- 25. Tại sao Thuộc tính được thực thi chậm hơn so với Thực thi Phương thức hoặc Phương thức?
- 26. Tại sao phương thức tĩnh Tạo tồn tại?
- 27. C#: Tại sao LinkedList không có một phương thức RemoveAll có một biến vị ngữ?
- 28. Tại sao các lớp tĩnh không có các phương thức và biến không tĩnh?
- 29. lý do tại sao không có phương thức thêm trong giao diện Iterator
- 30. Tại sao Thor sử dụng phương thức no_tasks?
Vâng, tôi nói rằng tôi làm add sau .Create của tôi() gọi .. Tôi sẽ thay vì có thể làm: mới AlertDialog.Builder (ctx) .setTitle (tiêu đề) .setMessage (msg) .setPositiveButton (buttonTitle, listener) .setDismissListener (dismissListener) .show() – danb
@danb Bạn làm điều đó sau create() gọi, nhưng trên đối tượng Builder? Điều đó sẽ không hoạt động. create() là cách Builder cung cấp cho bạn một AlertDialog, nhưng chính đối tượng Builder không có bất kỳ phương thức nào để thiết lập các trình lắng nghe trên chúng. – LuxuryMode
Trình xây dựng có một số phương pháp để thiết lập người nghe, không phải là hai phương pháp tôi đề cập. Nó có setOnCancelListener, setOnItemSelectedListener và setOnKeyListener .. Tôi chỉ tò mò tại sao api có vẻ không đầy đủ. – danb