5

Tôi có một hoạt độngchặn DialogFragment sa thải bên trong hoạt động

public class ShowFileActivity extends FragmentActivity 

và khi occours một số sự kiện, cuộc gọi lớp này một DialogFragment

public class ConfirmDialog extends DialogFragment 

đó là một hộp thoại xác nhận đơn giản (với "sa thải" và " ok "nút". Nếu người dùng nhấn nút gạt, tôi gọi

dismiss() 

và quay lại ShowFileActivity. Khác, nếu người dùng nhấn ok, sau khi thực hiện một số thao tác, sau khi bỏ qua cuộc gọi trên hộp thoại, tôi sẽ quay lại hoạt động chính của ShowFileActivity. Có cách để làm điều đó? DialogFragment có khởi chạy bất kỳ sự kiện nào cho chế độ xem cha mẹ của bạn không?

Trả lời

8

Điều bạn có thể làm là gọi phương thức hoạt động có chứa từ bên trong đoạn. Theo bất kỳ đoạn nào khác, bạn có thể gọi hàm getActivity() trả về hoạt động có chứa.

@Override 
public void onDismiss(DialogInterface dialog) { 
    ShowFileActivity parent = (ShowFileActivity) getActivity(); 
    parent.doWhateverYouWantWhenDialogDismissed(); 
} 

Một (nhiều fancy) cách tiếp cận sẽ được sử dụng một xe buýt sự kiện như otto hay greenrobot.

Các vấn đề liên quan