Comunicar un AlertDialog (DialogFragment) con un Fragment

Tengo una base de datos y para añadir datos lo hago con un AlertDialog (Creating a Custom Layout). El AlertDialog tiene dos TextEdit y los dos botones de aceptar y cancelar. Cuando se rellenan los dos TextEdit y das al botón de aceptar se añaden a la base de datos. Luego tengo un Fragment con dos botones: uno para mostrar el AlertDialog y el otro está desactivado. El botón desactivado se activa cuando en la base de datos tenga alguna fila de datos. El AlertDialog se llama AddAccountDialog y el Fragment IniFragment.
Mi principal objetivo es activar un método del IniFragment después de dar al botón de aceptar del AddAccountDialog.

Estoy usando el NAVIGATION COMPONENT.

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/layout_mainActivity"     android:layout_width="match_parent"     android:layout_height="match_parent"     tools:context=".MainActivity" >      <fragment         android:id="@+id/fragment"         android:name="androidx.navigation.fragment.NavHostFragment"         android:layout_width="0dp"         android:layout_height="0dp"         app:defaultNavHost="true"         app:layout_constraintBottom_toBottomOf="parent"         app:layout_constraintEnd_toEndOf="parent"         app:layout_constraintStart_toStartOf="parent"         app:layout_constraintTop_toTopOf="parent"         app:navGraph="@navigation/nav_graph" /> </androidx.constraintlayout.widget.ConstraintLayout> 

dialog_add_account.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/layout_addAccountDialog"     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:orientation="vertical"     android:padding="16dp">      <EditText         android:id="@+id/editText_accountName"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:ems="10"         android:hint="Nombre de la cuenta"         android:inputType="textPersonName" />      <EditText         android:id="@+id/editText_amount"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:ems="10"         android:hint="Cantidad"         android:inputType="numberDecimal" /> </LinearLayout> 

1º COMUNICARSE ENTRE DESTINOS USANDO SAFE ARGS

Parto de que en el nav_graph.xml se puede colocar el AlertDialog (Create a destination from a DialogFragment). Y como se trata de un destino se pueden pasar argumentos. Lo que pensé fue que puede pasar un boolean arg para mandar al IniFragment que se ha actualizado la base de datos:

nav_graph.xml

<?xml version="1.0" encoding="utf-8"?> <navigation xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/nav_graph"     app:startDestination="@id/iniFragment">      <fragment         android:id="@+id/iniFragment"         android:name="com.example.mayu.IniFragment"         android:label="fragment_ini"         tools:layout="@layout/fragment_ini" >         <argument             android:name="updateBool"             app:argType="boolean"             android:defaultValue="false" />         <action             android:id="@+id/action_iniFragment_to_addAccountDialog"             app:destination="@id/addAccountDialog" />     </fragment>     <dialog         android:id="@+id/addAccountDialog"         android:name="com.example.mayu.AddAccountDialog"         android:label="dialog_add_account"         tools:layout="@layout/dialog_add_account" >         <action             android:id="@+id/action_addAccountDialog_to_iniFragment"             app:destination="@+id/iniFragment" />     </dialog> </navigation> 

No hay problema cuando le doy al botón del IniFragment para que aparezca el AlertDialog:

Navigation.findNavController(view).navigate(R.id.action_iniFragment_to_addAccountDialog); 

El problema es cuando le doy al botón de aceptar que salta el error:

AddAccountDialog.java

@NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {      AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());     LayoutInflater inflater = requireActivity().getLayoutInflater();      final View view = inflater.inflate(R.layout.dialog_add_account, null);      builder.setView(view);     builder.setPositiveButton("Añadir", new DialogInterface.OnClickListener() {         @Override         public void onClick(DialogInterface dialogInterface, int i) {              //CÓDIGO PARA AÑADIR LOS DATOS DE LOS TEXTEDIT A LA BASE DE DATOS              // enviar datos al otro fragment             AddAccountDialogDirections.ActionAddAccountDialogToIniFragment action = AddAccountDialogDirections.actionAddAccountDialogToIniFragment();             action.setUpdateBool(true);             Navigation.findNavController(view).navigate(action);          }     });     builder.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {         @Override         public void onClick(DialogInterface dialogInterface, int i) {             AddAccountDialog.this.getDialog().cancel();         }     });      return builder.create(); } 

error

java.lang.IllegalStateException: View android.widget.LinearLayout{31aab9a V.E...... ........ 0,0-936,336 #7f080089 app:id/layout_addAccountDialog} does not have a NavController set         at androidx.navigation.Navigation.findNavController(Navigation.java:84) 

Si alguien tiene una mejor idea para activar el método del Fragment después de dar al botón de aceptar del DialogFragment también me vale.