[英]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.