我试图在用户按下后退按钮或暂停活动之前显示确认警报对话框。
我试过这个密码:

@Override
public void onBackPressed() {
    super.onBackPressed();

    AlertDialog.Builder confirmBuilder=new AlertDialog.Builder(DoExam.this);
    confirmBuilder.setTitle("Confirm Exit");
    confirmBuilder.setMessage("are you sure to exit form this activity");
    confirmBuilder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

        }
    });
    confirmBuilder.setNegativeButton("No", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

        }
    });
    AlertDialog confirmDialog=confirmBuilder.create();
    confirmDialog.show();
}

但它立即消失的同时,应用程序回到以前的活动。
我也试着把代码放在onpause方法中,但是我遇到了同样的问题。
如果单击“是”,则显示警报对话框并返回到上一个活动,如果单击“否”,则将用户保留在活动中,有何帮助?

最佳答案

因为您正在调用super.onBackPressed();删除它并查看发生了什么。super.onBackPressed();用于触发关闭活动的默认操作。当用户取消对话框时,您需要推迟该调用。

10-07 18:18