Получить результат от DialogFragment

Как видите, here, это очень простой dismiss способ.

В свой DialogFragment добавьте слушателя android интерфейса, например:

public interface EditNameDialogListener {
    void onFinishEditDialog(String inputText);
}

Затем android-api добавьте ссылку на этого android-sdk слушателя:

private EditNameDialogListener listener;

Это будет использоваться dialogbox для «активации» методов прослушивателя, а android-fragments также для проверки того, реализует dialog ли родительский Activity dialogs / Fragment этот интерфейс dialog (см. ниже).

В Activity / FragmentActivity / Fragment, который android-application «вызвал» DialogFragment, просто реализуйте android-application этот интерфейс.

В вашем DialogFragment все, что android вам нужно добавить в тот android-ui момент, когда вы хотите отклонить android-ui DialogFragment и вернуть результат, это dialogbox следующее:

listener.onFinishEditDialog(mEditText.getText().toString());
this.dismiss();

Где mEditText.getText().toString() - это то, что fragment будет передано обратно вызывающему dialog Activity.

Обратите внимание: если android-framework вы хотите вернуть что-то fragment еще, просто измените аргументы, которые dialogs принимает слушатель.

Наконец, вы dismiss должны проверить, действительно dismiss ли интерфейс был реализован dialog родительским действием / фрагментом:

@Override
public void onAttach(Context context) {
    super.onAttach(context);
    // Verify that the host activity implements the callback interface
    try {
        // Instantiate the EditNameDialogListener so we can send events to the host
        listener = (EditNameDialogListener) context;
    } catch (ClassCastException e) {
        // The activity doesn't implement the interface, throw exception
        throw new ClassCastException(context.toString()
                + " must implement EditNameDialogListener");
    }
}

Этот dialogue метод очень гибкий и позволяет android-ui перезвонить с результатом, даже dialogs если вы еще не хотите закрывать android-framework диалог.

android

dialog

android-fragments

fragment

dismiss

2022-11-04T20:06:33+00:00