Как передать данные из активности в диалоговое окно "Фрагмент", активирующее действие?
В моем приложении у меня есть форма, заполняемая пользователем. Нажатие "сохранить" данные будет сохранено в локальной базе данных. Я хочу добавить диалог подтверждения для пользователя, чтобы просмотреть детали, которые он ввел, прежде чем двигаться дальше, поскольку эти детали имеют решающее значение.
В моем экземпляре 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","");