6

私は活動をしています

public class ShowFileActivity extends FragmentActivity

そして、何らかのイベントが発生すると、このクラスはDialogFragmentを呼び出します

public class ConfirmDialog extends DialogFragment

これは単純な確認ダイアログです([閉じる]ボタンと[OK]ボタンがあります)。ユーザーが却下ボタンを押すと、私は電話します

dismiss()

ShowFileActivityに戻ります。それ以外の場合、ユーザーが[OK]を押すと、いくつかの操作を行った後、ダイアログでdismissを呼び出した後、ShowFileActivityの親アクティビティに戻ります。それを行う方法はありますか?DialogFragmentは、親ビューに対してイベントを起動しますか?

4

1 に答える 1

8

できることは、フラグメント内から包含アクティビティのメソッドを呼び出すことです。他のフラグメントと同様に、含まれているアクティビティを返すgetActivity()を呼び出すことができます。

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

もう1つの(より凝った)アプローチは、ottoやgreenrobotなどのイベントバスを使用することです

于 2013-03-26T22:04:01.877 に答える