Как перейти от DialogFragment к DialogFragment?
У меня есть фрагмент, где я нажимаю кнопку, и он открывает диалоговое окно (DialogFragment). В этом диалоговом окне у меня есть кнопка, при нажатии которой я хочу закрыть этот диалог и открыть другой другой диалог (DialogFragment). В этом новом диалоге я хочу сделать что-то подобное, я хочу сделать кнопку для возврата к предыдущему диалогу.
В моем навигационном графике у меня есть это:
<dialog android:id="@+id/dialog_first" android:name="com.example.dialog.FirstDialog" android:label="first" tools:layout="@layout/myfirstdialog">
<argument android:name="phonenumber" app:argType="string"/>
<action android:id="@+id/action_dialog_first_to_dialog_second" app:destination="@+id/dialog_second"/>
</dialog>
<dialog android:id="@+id/dialog_second" android:name="com.example.dialog.SecondDialog" android:label="second" tools:layout="@layout/myfirstdialog">
<action android:id="@+id/action_dialog_second_to_dialog_first" app:destination="@+id/dialog_second"/>
</dialog>
В моем первом диалоговом окне я получаю аргумент, чтобы показать его, если я перейду ко второму диалоговому окну и вернусь к первому диалоговому окну, я хочу по-прежнему иметь аргумент в диалоговом окне, нужно ли передать аргумент второму диалоговому окну и передать его вернуться к первому диалогу снова, чтобы сохранить его или нет?
Вот как я это делаю, но когда я нажимаю кнопку для перехода от первого диалогового окна ко второму диалоговому окну, он только закрывает диалоговое окно.
btnGoToSecondDialog.setOnClickListener{
dismiss()
findNavController().navigate(
FirstDialogDirections.action_dialog_first_to_dialog_second()
)
}
Как лучше всего это сделать? Как я могу показать второй диалог? Нужно ли передавать аргумент во второе диалоговое окно, если я вернусь из второго диалогового окна в первое, чтобы по-прежнему отображать аргумент?
1 ответ
Когда вы переходите из одного диалога в другой, если вы удаляете текущий диалог из фона и отправляете данные в текущем диалоге во второй диалог, вы сделаете то, что хотите.
Если вы хотите вернуться к первому диалоговому окну, вы должны удалить второй диалог из фона и отправить данные в первый диалог.
Таким образом, когда вы нажимаете кнопку закрытия из первого или второго диалога, в фоновом режиме не будет нежелательного диалога.