我使用的是 DialogFragment
,对此我表示这样从活动
:
I am using a DialogFragment
, which I am showing like this from an Activity
:
DialogFragmentImage dialog = DialogFragmentImage.newInstance(createBitmap());
dialog.onDismiss(dialog);.onDismiss(this);
dialog.show(getFragmentManager(), "DialogFragmentImage");
我想检查时, DialogFragment
被驳回(例如,当后退按钮是pressed),但在我的活动
。我该怎么办呢?我怎么能告诉我的活动
的 DialogFragmen
T已经被解雇?
I would like to check when the DialogFragment
was dismissed (for example when the back button was pressed), but in my Activity
. How can I do that? How can I "tell" my activity
that the DialogFragmen
t has been dismissed?
请您活动实施 OnDismissListener
public final class YourActivity extends Activity implements DialogInterface.OnDismissListener {
@Override
public void onDismiss(final DialogInterface dialog) {
//Fragment dialog had been dismissed
}
}
DialogFragment已经实现了 OnDismissListener
,只是覆盖的方法,并调用活动。
DialogFragment already implements OnDismissListener
, just override the method and call the Activity.
public final class DialogFragmentImage extends DialogFragment {
///blah blah
@Override
public void onDismiss(final DialogInterface dialog) {
super.onDismiss(dialog);
final Activity activity = getActivity();
if (activity instanceof DialogInterface.OnDismissListener) {
((DialogInterface.OnDismissListener) activity).onDismiss(dialog);
}
}
}
如果你从一个片段,使用 childFragment
管理器来启动的对话框(API> = 17),你可以使用 getParentFragment
谈父片段的onDismissListener:
If you're starting the dialog from a fragment using the childFragment
manager (API>=17), you can use getParentFragment
to talk to the onDismissListener on the parent fragment.:
public final class DialogFragmentImage extends DialogFragment {
///blah blah
@Override
public void onDismiss(final DialogInterface dialog) {
super.onDismiss(dialog);
Fragment parentFragment = getParentFragment();
if (parentFragment instanceof DialogInterface.OnDismissListener) {
((DialogInterface.OnDismissListener) parentFragment).onDismiss(dialog);
}
}
}