Обратный вызов фрагмента из фрагмента диалога

Вопрос: Как создать обратный вызов из DialogFragment в другой Fragment. В моем случае, Активность должна полностью не знать о DialogFragment.

Считай, у меня есть

public class MyFragment extends Fragment implements OnClickListener

Тогда в какой-то момент ямог делать

DialogFragment dialogFrag = MyDialogFragment.newInstance(this);
dialogFrag.show(getFragmentManager, null);

Где выглядит MyDialogFragment

protected OnClickListener listener;
public static DialogFragment newInstance(OnClickListener listener) {
    DialogFragment fragment = new DialogFragment();
    fragment.listener = listener;
    return fragment;
}

Но нет никакой гарантии, что слушатель будет рядом, если DialogFragment приостановится и возобновит свой жизненный цикл. Единственными гарантиями во фрагменте являются те, которые передаются через Bundle через setArguments и getArguments.

Существует способ ссылаться на активность, если она должна быть слушателем:

public Dialog onCreateDialog(Bundle bundle) {
    OnClickListener listener = (OnClickListener) getActivity();
    ....
    return new AlertDialog.Builder(getActivity())
        ........
        .setAdapter(adapter, listener)
        .create();
}

Но я неЯ не хочу, чтобы Activity прослушивала события, мне нужен фрагмент. Действительно, это может быть любой объект Java, который реализует OnClickListener.

Рассмотрим конкретный пример фрагмента, который представляет AlertDialog через DialogFragment. Он имеет кнопки Да / Нет. Как я могу отправить эти нажатия назад к фрагменту, который его создал?

Ответы на вопрос(11)

Ваш ответ на вопрос