Tôi có một số đoạn cần hiển thị hộp thoại thông thường. Trên các hộp thoại này, người dùng có thể chọn câu trả lời có / không và sau đó phân đoạn sẽ hoạt động tương ứng.
Bây giờ, Fragment
lớp không có onCreateDialog()
phương thức để ghi đè, vì vậy tôi đoán tôi phải triển khai các hộp thoại bên ngoài, trong phần chứa Activity
. Không sao cả, nhưng sau đó Activity
cần phải báo cáo lại câu trả lời đã chọn bằng cách nào đó cho phân mảnh. Tất nhiên, tôi có thể sử dụng một mẫu gọi lại ở đây, do đó, phân đoạn tự đăng ký tại lớp Activity
với một người nghe và Activity sẽ báo cáo lại câu trả lời thông qua điều đó, hoặc tương tự như vậy.
Nhưng điều này có vẻ là một mớ hỗn độn đối với một nhiệm vụ đơn giản như hiển thị hộp thoại có-không "đơn giản" trong một phân đoạn. Ngoài ra, theo cách này, tôi Fragment
sẽ bớt khép kín hơn.
Có một số cách dễ dàng hơn để làm điều này?
Biên tập:
Câu trả lời cho câu hỏi này không thực sự giải thích chi tiết cách người ta nên sử dụng DialogFragment để hiển thị hộp thoại từ Fragment. Vì vậy, AFAIK, cách để đi là:
- Hiển thị một Fragment.
- Khi cần, hãy khởi tạo DialogFragment.
- Đặt Fragment ban đầu làm mục tiêu của DialogFragment này, với
.setTargetFragment()
. - Hiển thị DialogFragment với .show () từ Fragment ban đầu.
- Khi người dùng chọn một số tùy chọn trên DialogFragment này, thông báo cho Fragment ban đầu về lựa chọn này (ví dụ: người dùng nhấp vào 'có'), bạn có thể nhận được tham chiếu của Fragment ban đầu với .getTarget ().
- Loại bỏ DialogFragment.