按下对话框片段时,如何关闭其包含的活动?

Huk*_*ABA 2 android android-dialogfragment

我有一个显示自定义 DialogFragment 的闪屏活动。当我按回时,我不仅要关闭对话框片段,还要关闭它包含的活动。

DialogFragment 缺少 onBackPressed(),否则我会放

getActivity().finish() 
Run Code Online (Sandbox Code Playgroud)

在那个回调中。我也不想把它放在 onDetach() 中,因为如果用户点击对话框片段中的一个元素,它应该在同一个启动活动中填充一个列表视图,而不是关闭应用程序。

Sim*_*mas 5

为什么要使用onDismiss回调?像这样:

@Override
public void onDismiss(DialogInterface dialog) {
    super.onDismiss(dialog);
    getActivity().finish();
}
Run Code Online (Sandbox Code Playgroud)

或覆盖onBackPressed您的活动中的:

@Override
public void onBackPressed() {
    MyFragment myFrag = getFragmentManager().findFragmentByTag("myFrag");
    if (myFrag != null && myFrag.mDialog.isShowing())
        myFrag.mDialog.dismiss();
        finish();
    } else {
        super.onBackPressed();
    }
}
Run Code Online (Sandbox Code Playgroud)