警告对话框否定按钮相同 activity
Alert Dialog negative button to same activity
我正在尝试一个简单的应用程序,用户可以在其中输入他的号码。我会显示一个警告对话框以确认他的手机号码。如果用户选择 "YES",我会将他重定向到下一个 activity。但问题是,如果用户 select "NO" 我想显示相同的 activity 来编辑号码。
现在我通过调用同一个 activity 的 Intent 来做到这一点。但这是一种不好的做法。如何在 activity 中显示与上次输入的数字相同的 activity?
以下是我的尝试。
按下按钮
phoneNum = (EditText) findViewById(R.id.editTextPhoneNumber);
String phNum = phoneNum.getText().toString();
AlertDialog.Builder alertDialog = new AlertDialog.Builder(
MainActivity.this);
alertDialog.setTitle("CONFIRM");
alertDialog.setMessage("Is this your correct number? \n" + phNum
+ " a SMS will be sent to verify your phone number.");
alertDialog.setPositiveButton("YES",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
sendOtp();
Intent myIntent = new Intent(getApplicationContext(),
Activity2Activity.class);
startActivity(myIntent);
}
});
alertDialog.setNegativeButton("NO",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// dialogInterface.cancel();
Intent sameIntent = new Intent(MainActivity.this,
MainActivity.class);
startActivity(sameIntent);
finish();
}
});
alertDialog.show();
使用这个:
getDialog().dismiss();
因为您只需要显示相同的 activity,只需在单击否定按钮时关闭对话框即可。
alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
alertDialog.dismiss();
}
}
您可以阅读这份参考文档:
Official Doc : Dialog Dismiss
注意这句话:
当用户触摸任何使用 AlertDialog.Builder 创建的操作按钮时,系统会为您关闭对话框。
无论用户点击Builder生成的哪个按钮,系统都会关闭对话框。
alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//Just leave it empty here.
}
});
试试用这个。它会帮助你
phoneNum = (EditText) findViewById(R.id.editText1);
String phNum = phoneNum.getText().toString();
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(
MainActivity.this);
alertDialog.setTitle("CONFIRM");
alertDialog.setMessage("Is this your correct number? \n" + phNum
+ " a SMS will be sent to verify your phone number.");
alertDialog.setPositiveButton("YES",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
sendOtp();
Intent myIntent = new Intent(getApplicationContext(),
Activity2Activity.class);
startActivity(myIntent);
}
});
alertDialog.setNegativeButton("NO",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// dialogInterface.cancel();
}
});
alertDialog.show();
如果您不想发生任何事情,则不必使用 OnClickListener
,只需输入 null
。
例如:
builder.setPositiveButton("OK", null);
public void SureEvent() {
final AlertDialog.Builder ad = new AlertDialog.Builder(this);
ad.setMessage("Are You sure Want to exit ?");
ad.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "Closing..", Toast.LENGTH_SHORT).show();
finish();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();//Syntax:DialogInterface_varible.method()
//dialog.cancel();
}
})
.show();
}
我正在尝试一个简单的应用程序,用户可以在其中输入他的号码。我会显示一个警告对话框以确认他的手机号码。如果用户选择 "YES",我会将他重定向到下一个 activity。但问题是,如果用户 select "NO" 我想显示相同的 activity 来编辑号码。
现在我通过调用同一个 activity 的 Intent 来做到这一点。但这是一种不好的做法。如何在 activity 中显示与上次输入的数字相同的 activity?
以下是我的尝试。 按下按钮
phoneNum = (EditText) findViewById(R.id.editTextPhoneNumber);
String phNum = phoneNum.getText().toString();
AlertDialog.Builder alertDialog = new AlertDialog.Builder(
MainActivity.this);
alertDialog.setTitle("CONFIRM");
alertDialog.setMessage("Is this your correct number? \n" + phNum
+ " a SMS will be sent to verify your phone number.");
alertDialog.setPositiveButton("YES",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
sendOtp();
Intent myIntent = new Intent(getApplicationContext(),
Activity2Activity.class);
startActivity(myIntent);
}
});
alertDialog.setNegativeButton("NO",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// dialogInterface.cancel();
Intent sameIntent = new Intent(MainActivity.this,
MainActivity.class);
startActivity(sameIntent);
finish();
}
});
alertDialog.show();
使用这个:
getDialog().dismiss();
因为您只需要显示相同的 activity,只需在单击否定按钮时关闭对话框即可。
alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
alertDialog.dismiss();
}
}
您可以阅读这份参考文档:
Official Doc : Dialog Dismiss
注意这句话:
当用户触摸任何使用 AlertDialog.Builder 创建的操作按钮时,系统会为您关闭对话框。
无论用户点击Builder生成的哪个按钮,系统都会关闭对话框。
alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//Just leave it empty here.
}
});
试试用这个。它会帮助你
phoneNum = (EditText) findViewById(R.id.editText1);
String phNum = phoneNum.getText().toString();
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(
MainActivity.this);
alertDialog.setTitle("CONFIRM");
alertDialog.setMessage("Is this your correct number? \n" + phNum
+ " a SMS will be sent to verify your phone number.");
alertDialog.setPositiveButton("YES",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
sendOtp();
Intent myIntent = new Intent(getApplicationContext(),
Activity2Activity.class);
startActivity(myIntent);
}
});
alertDialog.setNegativeButton("NO",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// dialogInterface.cancel();
}
});
alertDialog.show();
如果您不想发生任何事情,则不必使用 OnClickListener
,只需输入 null
。
例如:
builder.setPositiveButton("OK", null);
public void SureEvent() {
final AlertDialog.Builder ad = new AlertDialog.Builder(this);
ad.setMessage("Are You sure Want to exit ?");
ad.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "Closing..", Toast.LENGTH_SHORT).show();
finish();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();//Syntax:DialogInterface_varible.method()
//dialog.cancel();
}
})
.show();
}