警报对话框关闭而不按按钮,活动进入主页

时间:2011-11-23 09:22:42

标签: android

我正在构建一个带有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;
    }

任何帮助都非常感谢...... !!!

3 个答案:

答案 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();