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

Вопрос: Как создать обратный вызов из 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. Он имеет кнопки Да / Нет. Как я могу отправить эти нажатия назад к фрагменту, который его создал?

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

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