Как перейти от 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 ответ

Когда вы переходите из одного диалога в другой, если вы удаляете текущий диалог из фона и отправляете данные в текущем диалоге во второй диалог, вы сделаете то, что хотите.

Если вы хотите вернуться к первому диалоговому окну, вы должны удалить второй диалог из фона и отправить данные в первый диалог.

Таким образом, когда вы нажимаете кнопку закрытия из первого или второго диалога, в фоновом режиме не будет нежелательного диалога.

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