簡體   English   中英

回到活動之前如何顯示AlertDialog?

[英]How to show AlertDialog before back to Activity?

我試圖在用戶按下“返回”按鈕或“活動暫停”之前顯示確認的AlertDialog。
我嘗試了這段代碼:

@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(); 旨在觸發關閉活動的默認操作。 您需要在用戶關閉對話框時推遲該呼叫。

使用此代碼

@Override
public void 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) {
        // do any action you require on click
        DoExam.super.onBackPressed();
    }
});
confirmBuilder.setNegativeButton("No", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {

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

刪除super.onBackPressed(); 並將其添加到Alertdialog的“ 是”是按鈕的onClick(...)

像這樣

confirmBuilder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) {         super.onBackPressed();

}};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM