Android 检查编辑文本是否为空时返回警报对话框

Android 检查编辑文本是否为空时返回警报对话框,android,android-alertdialog,Android,Android Alertdialog,我创建了AlertDialog,其中包含三个EditText和一个发送值的按钮。如果其中一个编辑文本为空,则应返回警报对话框 我使用此代码检查: if (TextUtils.isEmpty(edt_dialog_date.getText().toString())) { Toast.makeText(MainActivity.this, "Please enter Date", Toast.LENGTH_SHORT).show();

我创建了AlertDialog,其中包含三个EditText和一个发送值的按钮。如果其中一个编辑文本为空,则应返回警报对话框

我使用此代码检查:

 if (TextUtils.isEmpty(edt_dialog_date.getText().toString())) {
       Toast.makeText(MainActivity.this, "Please enter Date", 
                 Toast.LENGTH_SHORT).show();
       return;
 }  
如果编辑文本为空,它将关闭警报对话框并返回到父活动,我希望返回到警报对话框本身。 如何做到这一点?

这是我的消息来源:

final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
 builder.setTitle("Add New Bill");

 LayoutInflater inflater = this.getLayoutInflater();
 View custom_dialog = inflater.inflate(R.layout.dialog_custom, null);

EditText edtNo = (EditText) custom_dialog .findViewById(R.id.edt_no);
EditText edtName = (EditText) custom_dialog .findViewById(R.id.edt_name);
EditText edtAge = (EditText) custom_dialog .findViewById(R.id.edt_age);

builder.setView(custom_dialog);

builder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
 @Override
 public void onClick(DialogInterface dialog, int which) {
  if (TextUtils.isEmpty(edtNo.getText().toString())) {
       return;
  }
  if (TextUtils.isEmpty(edtName.getText().toString())) {
   return;
    }
  if(TextUtils.isEmpty(edtAge.getText().toString())) {
        return;
     }
    }
});

builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });
builder.show();     

由于默认情况下,
AlertDialog
按钮将
Disclose()
对话框,因此为了防止出现这种情况,您必须在对话框显示后立即覆盖按钮单击侦听器。您可以尝试以下代码段

dialog.setOnShowListener(new DialogInterface.OnShowListener() {

   @Override
    public void onShow(DialogInterface dialogInterface) {

        Button button = ((AlertDialog) dialog).getButton(AlertDialog.BUTTON_POSITIVE);
        button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {

            //Dismiss once everything is OK.
            dialog.dismiss();
        }
     });
    }
});
dialog.show();

要停止关闭对话框,直到您检查所有编辑文本是否填写了正确的信息,您必须将肯定按钮代码保留为空,并在否定按钮中关闭对话框。 之后,你必须定义

警报对话框=builder.create()

然后显示对话框并使用

dialog.getButton

点击积极按钮并设置OnClickListener,如下面的代码所示:

final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater = this.getLayoutInflater();
View custom_dialog = inflater.inflate(R.layout.dialog_custom, null);

EditText edtNo = (EditText) custom_dialog .findViewById(R.id.edt_no);
EditText edtName = (EditText) custom_dialog .findViewById(R.id.edt_name);
EditText edtAge = (EditText) custom_dialog .findViewById(R.id.edt_age);

builder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which) {
         // leave it empty 
   }

});

builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){
     @Override
     public void onClick(DialogInterface dialog, int which) {
          dialog.dismiss();
    }
});

builder.setView(custom_dialog);
AlertDialog dialog = builder.create();
dialog.show();
 dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {
            // write check code
  if (TextUtils.isEmpty(edtNo.getText().toString())) {
       return;
  }
  if (TextUtils.isEmpty(edtName.getText().toString())) {
      return;
  }
  if(TextUtils.isEmpty(edtAge.getText().toString())) {
     return;
 }

// if every thing is Ok then dismiss dialog
            dialog.dismiss();
   }

}

共享您的alertdialogsource@Qasim它只是一个简单的警报对话框生成器。final AlertDialog.Builder=新建AlertDialog.Builder(MainActivity.this);建造商名称(“添加新账单”);该按钮是使用Builder可用的正/负/中性按钮之一,对吗?@Qasim该按钮是正按钮生成器。setPositiveButton(“添加”,new DialogInterface.OnClickListener(){public void onClick(DialogInterface dialog,int which){if(TextUtils.isEmpty(edtNo.getText().toString())){return;}没关系。我应该写这个而不是正面按钮的代码吗?是的,只需添加正面按钮标题和null作为侦听器,然后像上面一样处理按钮点击。我不知道在哪里添加此代码。你能告诉我如何将其放入我的源代码中吗?我已经编辑了我的问题。我已经用源代码编辑了我的问题。请告诉我你回答的密码放在哪里。