即使在解雇之后,Alertdialog也会弹出

时间:2012-11-05 16:16:44

标签: android alertdialog android-alertdialog

我有同样的问题,在这个问题中讨论

Alert dialog pops up even after dismissing it

当用户输入无效数据并单击提交按钮时,将打开失败的警报对话框。我在失败的警告对话框上有一个按钮(继续),点击它后我写了dialog.dismiss();使其消失,以便用户可以重新检查数据并进行修改。但问题是重新检查和如果他更改了方向,则修改数据,然后即使没有单击提交按钮,也会弹出失败的警报对话框。请建议。

这是我的代码,请帮助....

final EditText Name = (EditText) findViewById(R.id.editText1);

    final EditText Phone = (EditText) findViewById(R.id.editText2);

    final EditText Email = (EditText) findViewById(R.id.editText3);

    final EditText Message = (EditText) findViewById(R.id.editText4);

    final AlertDialog alertDialog = new AlertDialog.Builder(Contact.this)
            .create();

    alertDialog.setButton("Continue..",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    // here you can add functions
                    alertDialog.dismiss();
                }
            });

    Submit = (ImageButton) findViewById(R.id.bSubmit);
    Submit.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {

            if (Name.getText().toString().length() > 0) {

                if (Phone.getText().toString().matches("^[0-9]{1,10}$")) {

                    if (Email.getText().toString()
                            .matches("[a-zA-Z0-9._-]+@[a-z]+.[a-z]+")) {

                        if (Message.getText().toString().length() > 10) {

                            //Calling async class and sending data to server

                        } else

                            alertDialog.setMessage("msg is tooo short...");
                        alertDialog.show();
                    } else
                        alertDialog.setMessage("Invalid email ID");
                    alertDialog.show();
                } else

                    alertDialog.setMessage("Invalid Number...");
                alertDialog.show();

            } else

                alertDialog.setMessage("Enter the Name...!");
            alertDialog.show();

        }

    });

2 个答案:

答案 0 :(得分:1)

通过调用onCreate,更改方向会破坏活动和重新启动。您可能必须在覆盖的onResume()中处理此问题,以确保正在清除对话框。请在此处查看活动生命周期。 http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

答案 1 :(得分:0)

alertDialog.show();

根据您的代码调用两次。只需从其他地方删除上面的行,并在结尾处使用一次。