[英]how to dismiss alertdialog when it's Yes button is Clicked and not show it again onBackPressed?
我的應用程序中有兩個警報對話框。
1用於退出應用程序,另一個用於重定向到url。
我已經在對話框中顯示了對話框。
現在將彈出第一個對話框,即立即重定向url,因為當用戶按下該對話框時,它將重定向到url。
但是當用戶按下后退按鈕時,我必須將其關閉,並且只想在后退按鈕單擊時顯示退出對話框。
這是我的代碼。
boolean flag = false;
@Override
public void onBackPressed() {
if (flag) {
super.onBackPressed();
} else {
final AlertDialog.Builder alert = new AlertDialog.Builder(
MainActivity.this);
alert.setMessage("EXIT"); // Message
// here
alert.setPositiveButton("NO",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
AlertDialog.Builder exitdialog = new AlertDialog.Builder(
MainActivity.this);
exitdialog
.setMessage("EXIT");
exitdialog.setTitle(R.string.app_name);
exitdialog.setIcon(R.drawable.logo);
exitdialog.setPositiveButton("NO",
new OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
}
});
exitdialog.setNegativeButton("Yes",
new OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
/*
* Intent i=new
* Intent(getApplicationContext
* (),MainActivity.class);
* startActivity(i);
*/
finishFromChild(getParent());
getIntent()
.setFlags(
Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
}
});
AlertDialog alertDialog = exitdialog.create();
alertDialog.show();
}
});
alert.setNegativeButton("YES",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
Intent viewTwitter = new Intent(
"android.intent.action.VIEW",
Uri.parse("URL"));
startActivity(viewTwitter);
overridePendingTransition(R.anim.fadein,
R.anim.fadeout);
}
});
final AlertDialog alertDialog = alert.create();
alertDialog.show();
}
刪除finish();
默認操作是dismiss
dialog.dismiss();
在側面的onClick
方法中
編輯設置flag = true;
boolean flag = false;
@Override
public void onBackPressed() {
if (flag) {
super.onBackPressed();
} else {
final AlertDialog.Builder alert = new AlertDialog.Builder(
MainActivity.this);
alert.setMessage("EXIT"); // Message
// here
alert.setPositiveButton("NO",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
AlertDialog.Builder exitdialog = new AlertDialog.Builder(
MainActivity.this);
exitdialog
.setMessage("EXIT");
exitdialog.setTitle(R.string.app_name);
exitdialog.setIcon(R.drawable.logo);
exitdialog.setPositiveButton("NO",
new OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
}
});
exitdialog.setNegativeButton("Yes",
new OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
/*
* Intent i=new
* Intent(getApplicationContext
* (),MainActivity.class);
* startActivity(i);
*/
finishFromChild(getParent());
getIntent()
.setFlags(
Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
}
});
AlertDialog alertDialog = exitdialog.create();
alertDialog.show();
}
});
alert.setNegativeButton("YES",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
flag= true;
Intent viewTwitter = new Intent(
"android.intent.action.VIEW",
Uri.parse("URL"));
startActivity(viewTwitter);
overridePendingTransition(R.anim.fadein,
R.anim.fadeout);
}
});
final AlertDialog alertDialog = alert.create();
alertDialog.show();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.