5

Ich habe eine Aktivitätabfangen DialogFragment innen Aktivität entlassen

public class ShowFileActivity extends FragmentActivity 

und wenn occours irgendein Ereignis, dieser Aufruf Klasse eines DialogFragment

public class ConfirmDialog extends DialogFragment 

, dass ein einfacher Bestätigungsdialog ist (mit „entlassen“ und " ok "Taste). Wenn der Benutzer drücken Sie die Taste entlassen, rufen i

dismiss() 

und kommen zurück in ShowFileActivity. Sonst, wenn der Benutzer OK drückt, nachdem einige Operationen ausgeführt wurden, nach der Anrufabweisung im Dialog, würde ich zurück zur Elternaktivität von ShowFileActivity gehen. Es gibt einen Weg, es zu tun? Startet DialogFragment ein Ereignis in seiner übergeordneten Ansicht?

Antwort

8

Sie können eine Methode der enthaltenden Aktivität aus dem Fragment heraus aufrufen. Wie bei jedem anderen Fragment können Sie getActivity() aufrufen, das die enthaltene Aktivität zurückgibt.

@Override 
public void onDismiss(DialogInterface dialog) { 
    ShowFileActivity parent = (ShowFileActivity) getActivity(); 
    parent.doWhateverYouWantWhenDialogDismissed(); 
} 

Weitere (mehr Phantasie) Ansatz wäre ein Ereignis Bus zu verwenden, wie otto oder greenrobot.