この質問で説明されているのと同じ問題があります
問題は、ユーザーが無効なデータを入力して送信ボタンをクリックすると、失敗したアラート ダイアログが開かれることです。失敗したアラートダイアログにボタン(続行)があり、クリックした後、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();
}
});