我有一个显示自定义对话框片段的启动屏幕活动。当我按back时,我不仅想关闭dialogfragment,而且还想关闭它包含的活动。
dialogfragment缺少onbackpressed(),否则我将
getActivity().finish()
在回叫中。我也不想把它放在ondetach()中,因为如果用户单击dialogfragment中的某个元素,它应该在相同的启动活动中填充一个listview,而不是关闭应用程序。
最佳答案
为什么使用onDismiss
回调?这样地:
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
getActivity().finish();
}
或者覆盖活动中的
onBackPressed
:@Override
public void onBackPressed() {
MyFragment myFrag = getFragmentManager().findFragmentByTag("myFrag");
if (myFrag != null && myFrag.mDialog.isShowing())
myFrag.mDialog.dismiss();
finish();
} else {
super.onBackPressed();
}
}