Как передать данные из активности в диалоговое окно "Фрагмент", активирующее действие?

В моем приложении у меня есть форма, заполняемая пользователем. Нажатие "сохранить" данные будет сохранено в локальной базе данных. Я хочу добавить диалог подтверждения для пользователя, чтобы просмотреть детали, которые он ввел, прежде чем двигаться дальше, поскольку эти детали имеют решающее значение.

В моем экземпляре dialogFragment у меня было бы что-то вроде: "Вы вводите эти данные: A, B, C... вы подтверждаете?"

A, B, C - значения моих полей EditText в активности, которая вызывает диалогFragment

Как получить доступ к этим значениям из диалогового окна? Я использую:

new ConfirmSaveProjectDetails().show(getFragmentManager(),"Confirm");

в моей деятельности. ConfirmSaveProjectDetails - это мой класс dialogFragment.

Я не использую Intent, иначе я бы послал Bundle...

Любое предложение?

Ответы

Ответ 1

Вы можете добавлять аргументы в виде пакета во Фрагмент, а затем извлекать их из фрагмента. Используйте следующие методы, доступные на Fragment:

setArguments и getArguments.

Передача их в качестве аргументов в конструктор фрагментов всегда является опцией.

Ответ 2

Возможно, это не самый красивый/элегантный метод, но вы можете сделать эти биты информации public static, а затем ссылаться на них в диалоговом окне.

В операции/фрагменте, где вы собираете данные:

public static String A
public static String B
public static String C

И возьмите его в фрагменте диалога так (извините, если я объясню то, что вы уже знаете):

your_activity/fragment_classname.A
your_activity/fragment_classname.B
your_activity/fragment_classname.C

Ответ 3

В Деятельности

ImageViewDialogFragment dialogFragment = new ImageViewDialogFragment ();
                        Bundle bundle = new Bundle();
                        bundle.putString("link",moviesList.get(position).getImage());
                        dialogFragment.setArguments(bundle);
                        dialogFragment.show((GalleryReviewActivity.this).getSupportFragmentManager(),"Image Dialog");

в Диалоговое окно

 Bundle bundle = getArguments();
 String imageLink = bundle.getString("link","");