解除dialogfragment时刷新片段

tyb*_*tyb 17 android android-fragments

有什么方法可以检测到DialogFragment何时被解除,以便我可以更新其父片段?

小智 35

您可以添加侦听器并覆盖片段对话框的onDismiss:

public class DismissDialog extends DialogFragment {
    private DialogInterface.OnDismissListener onDismissListener;

    public void setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) {
        this.onDismissListener = onDismissListener;
    }

    @Override
    public void onDismiss(DialogInterface dialog) {
        super.onDismiss(dialog);
        if (onDismissListener != null) {
            onDismissListener.onDismiss(dialog);
        }
   }
}
Run Code Online (Sandbox Code Playgroud)

然后,在父级上,设置一个监听器:

DismissDialog d = new DismissDialog();
d.setOnDismissListener(new DialogInterface.OnDismissListener() {
        @Override
        public void onDismiss(DialogInterface dialog) {

        }
    });
d.show(getSupportFragmentManager(), "sometag");
Run Code Online (Sandbox Code Playgroud)


cot*_*aws 3

重写DialogFragment 的onDismiss(),或者在构建底层对话框时,使用setOnDimissListener()设置监听器。

  • 这通知“DialogFragment”它已被解雇,但不是它的父片段,这正是问题所要求的。 (18认同)