Получить результат от 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
Получить результат от DialogFragment
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.