如何使第二个警报对话框中的按钮导航到上一个警报对话框?
how to make the button from second alert dialog navigate to previous alert dialog?
所以我有这个有两个选项按钮的警告对话框。如果我单击 "yes" 但输入错误,它会创建另一个对话框,提醒您输入正确的文本。
ab.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
kode_konfirmasi = userInput.getText().toString();
if(kode_konfirmasi.equals("lrsstwbsd")) {
strIdWaktuVaksin = ambil_notif_id_vaksin;
strWaktuDatang = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
strStatusVaksin = "done";
update(strIdWaktuVaksin, strWaktuDatang, strStatusVaksin);
new LongOperation().execute(url);
}else{
AlertDialog.Builder abt = new AlertDialog.Builder(MainPetInformation.this);
abt.setTitle("sorry, wrong input. Try again");
abt.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
return;
}
});
abt.show();
}
}
});
但是,我不知道如何让第二个对话框按钮导航到用户可以再次输入的上一个对话框
如下所示创建 AlertDialog -
final AlertDialog ab = new AlertDialog.Builder(this)
.setTitle("First")
.setPositiveButton(android.R.string.ok, null) //Set to null. We override the onclick
.setNegativeButton(android.R.string.cancel, null)
.create();
ab.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
Button b = ab.getButton(AlertDialog.BUTTON_POSITIVE);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder1 = new AlertDialog.Builder(MainActivity.this);
builder1.setTitle("second");
builder1.setPositiveButton("okay", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
abt.dismiss();
}
});
abt = builder1.create();
abt.show();
if(correctInput)
// ab.dismiss();
}
});
}
});
ab.show();
创建 AlertDialog abt 作为 Class 成员。
首先,我建议使用 Toast with LENGTH_LONG 来显示您的错误,因为它会在一段时间后自行处理,您的 AlertDialog
将仍然存在...
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getBaseContext(), "Error", Toast.LENGTH_LONG).show();
}
但是如果你想使用 Alertdialog
使你的 AlertDialog
对象全局变量并在你的第二个对话框中调用它 onClick
.
AlertDialog _alert;
final AlertDialog.Builder _builder =new AlertDialog.Builder(MainActivity.this);
_builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if(condition) {
// ----
}else{
AlertDialog.Builder builder =new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Wrong Input");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
_alert = _builder.create();
_alert.show();
//-- return to first dialog
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
_alert = _builder.create();
_alert.show()
所以我有这个有两个选项按钮的警告对话框。如果我单击 "yes" 但输入错误,它会创建另一个对话框,提醒您输入正确的文本。
ab.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
kode_konfirmasi = userInput.getText().toString();
if(kode_konfirmasi.equals("lrsstwbsd")) {
strIdWaktuVaksin = ambil_notif_id_vaksin;
strWaktuDatang = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
strStatusVaksin = "done";
update(strIdWaktuVaksin, strWaktuDatang, strStatusVaksin);
new LongOperation().execute(url);
}else{
AlertDialog.Builder abt = new AlertDialog.Builder(MainPetInformation.this);
abt.setTitle("sorry, wrong input. Try again");
abt.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
return;
}
});
abt.show();
}
}
});
但是,我不知道如何让第二个对话框按钮导航到用户可以再次输入的上一个对话框
如下所示创建 AlertDialog -
final AlertDialog ab = new AlertDialog.Builder(this)
.setTitle("First")
.setPositiveButton(android.R.string.ok, null) //Set to null. We override the onclick
.setNegativeButton(android.R.string.cancel, null)
.create();
ab.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
Button b = ab.getButton(AlertDialog.BUTTON_POSITIVE);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder1 = new AlertDialog.Builder(MainActivity.this);
builder1.setTitle("second");
builder1.setPositiveButton("okay", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
abt.dismiss();
}
});
abt = builder1.create();
abt.show();
if(correctInput)
// ab.dismiss();
}
});
}
});
ab.show();
创建 AlertDialog abt 作为 Class 成员。
首先,我建议使用 Toast with LENGTH_LONG 来显示您的错误,因为它会在一段时间后自行处理,您的 AlertDialog
将仍然存在...
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getBaseContext(), "Error", Toast.LENGTH_LONG).show();
}
但是如果你想使用 Alertdialog
使你的 AlertDialog
对象全局变量并在你的第二个对话框中调用它 onClick
.
AlertDialog _alert;
final AlertDialog.Builder _builder =new AlertDialog.Builder(MainActivity.this);
_builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if(condition) {
// ----
}else{
AlertDialog.Builder builder =new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Wrong Input");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
_alert = _builder.create();
_alert.show();
//-- return to first dialog
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
_alert = _builder.create();
_alert.show()