我正在尝试一个简单的应用,用户输入他的号码。我会显示一个警告对话框以确认他的手机号码。如果用户选择"是"我正在将他重定向到下一个活动。但问题是,如果用户选择"否"我想显示编辑号码的相同活动。
现在我通过调用相同活动的Intent来做到这一点。但这是一种不好的做法。如何在活动中显示与上次输入的号码相同的活动?
这是我尝试的方式。 按下按钮
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();
答案 0 :(得分:3)
您可以阅读此参考文档:
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.
}
});
答案 1 :(得分:2)
由于您只需要显示相同的活动,只需在单击否定按钮时关闭该对话框。
alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
alertDialog.dismiss();
}
}
答案 2 :(得分:1)
使用此:
getDialog().dismiss();
答案 3 :(得分:1)
尝试使用此功能。它会帮助你
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();
答案 4 :(得分:0)
如果您不希望发生任何事情,则不必使用OnClickListener
,只需输入null
。
例如:
builder.setPositiveButton("OK",null);
答案 5 :(得分:0)
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();
}