(android) Как отправить данные из DialogFragment в Activity?

В MainActivity, когда я нажимаю кнопку DialogFragment, отображается.

Я хочу отправить данные, которые я получил от DialogFragment.

DialogFragment'состоит из RecyclerView. Каждый предмет состоит из TextView

Мне удалось получить данные. Когда я нажимаю save button, данные должны быть отправлены в Activity.

Но я не знаю, как отправить их в Activity.

Intent должен использовать startAcitivity, поэтому он не подходит.

Как отправить данные «DialogFragment» в «Активность»?

0
0
103
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Простым способом было бы:

  • добавьте метод в свою деятельность (MyAcitivity.class) void myMethod (данные Mydata)...
  • из вашего диалогового окна, когда вы хотите отправить данные, (MyActivity)getActivity().myMethod(data)

Вот и все.

Спасибо. Однако как насчет использования interface? Я имею в виду, определить интерфейс в DialogFragment и реализовать метод интерфейса в MainActivity. а затем вызовите реализованный метод. этот способ неэффективен?

ybybyb 26.12.2020 18:15

Тоже можно. Определите интерфейс в вашем фрагменте. Затем внедрите его в свою деятельность. Затем, если ваш интерфейс реализован вашей активностью, вам не нужно регистрировать его в своем фрагменте, вы можете получить к нему доступ с помощью ((мой интерфейс)getActivity).myInterfaceMethod(data).

user4752077 26.12.2020 18:29

Если ваш реализованный метод является анонимным методом из вашей деятельности, вам придется зарегистрировать его в своем фрагменте. Когда вы создаете свой фрагмент, вы можете передать этот анонимный метод, но вам придется управлять изменением конфигурации (ротацией).

user4752077 26.12.2020 18:34

Другие вопросы по теме

Общая модель представления не работает с фрагментом диалогового окна нижнего листа, базой данных и пользовательским интерфейсом
Показать весь нижний лист с панелью инструментов, когда видна клавиатура
Отсоединить фрагмент при воссоздании активности
Сбой приложения после вызова dialogFragment.onDismiss, ошибка: java.lang.IllegalStateException: фрагмент уже добавлен
Изменить цвет фона фрагмента из DialogFragment ColorPicker с использованием Mutablelivedata, не работающего
Пропущено 844 кадра! Слишком много работы в MainThread, вызванное простым AlertDialog со Spinners
Держите DialogFragment перед всеми действиями (даже созданными после показа DialogFragment )
DialogFragment не найден во фрагментной транзакции
Отображение фрагмента диалога выдает исключение «невозможно выполнить это действие после onSaveInstanceState»
Диалоговое окно пользовательского оповещения не закрывается при нажатии кнопки и показывает белый фон под пользовательским диалоговым окном