我正在构建一个带有Login活动的Android应用程序。如果电子邮件无效,我想显示一个警告框,其中包含“电子邮件无效”消息,并希望保持相同的活动。问题是警报框只显示一小段时间,然后我立即回到父活动,而不按警告框中的任何按钮。我的代码是:
if (v.getId() == R.id.loginButton) {
if(checkEmail(emailtheGame.toString())==true)
{
startActivity(new Intent(this, BackgroundImages.class));
}
else
{
email=emailtheGame.toString();
showDialog(0);
}
finish();
boolean checkEmail(String inputMail) {
Pattern pattern= Pattern.compile("^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\\.([a-zA-Z])+([a-zA-Z])+");
return pattern.matcher(inputMail).matches();
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case 0:
return new AlertDialog.Builder(this)
.setTitle("Showing Response.........")
.setMessage("sdfdsfdfsdf")
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
Toast.makeText(getBaseContext(),
"OK clicked!", Toast.LENGTH_SHORT)
.show();
}
})
.create();
}
return null;
}
任何帮助都非常感谢...... !!!
答案 0 :(得分:4)
finish();
这是罪魁祸首。删除此行。
答案 1 :(得分:4)
删除Finish()并替换此代码段
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case 0:
return new AlertDialog.Builder(this)
.setTitle("Showing Response.........")
.setMessage("sdfdsfdfsdf")
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
Toast.makeText(getBaseContext(),
"OK clicked!", Toast.LENGTH_SHORT)
.show();
// use Finish here
finish();
//
}
})
.create();
}
这会有用......
答案 2 :(得分:1)
在您查看用户输入的电子邮件后,您可以调用finish()
操作来关闭当前活动。如果您想保持同一活动,请不要致电finish()
;