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