如何验证一个弹出消息或警告对话框,多领域的EditText?(How to validate mul

2019-10-17 14:43发布

我想知道如何验证我的4场的EditText如果这些字段中的一个或多个被敲击按钮来处理输入后留下空。 我已搜查喜欢用吐司许多解决方案,但它认为它不适合多领域的EditText使用textwatchers。 我想该应用显示弹出消息或警告对话框说“请填写必要的领域。”

任何帮助,将不胜感激。

Answer 1:

您可以使用以下常见功能检查的EditText的空值:

  public static boolean m_isError; public static void checkEntryForEmptyValue(EditText p_editText, String p_nullMsg) { if (p_editText != null || p_nullMsg != null) { // use trim() while checking for blank values if ((p_editText.getText().toString().trim().equalsIgnoreCase("")) || (p_editText.getText().toString().trim().length() <= 0)) { m_isError = true; p_editText.setError(p_nullMsg); p_editText.requestFocus(); } } } } 

使用上述功能如下您按一下按钮监听器里:

 CommonUtil.m_isError = false; CommonUtil.checkEntryForEmptyValue(edittext,getResources(). getString(R.string.MessageEmpty)); if (!CustomValidator.m_isError) { Toast.makeText(getApplicationContext(),"Success", Toast.LENGTH_SHORT).show(); } else { //Your dialog with the error messages. } 


Answer 2:

ü可以使用一些工具提示进行验证像qtip或poshytip

http://vadikom.com/demos/poshytip/

http://craigsworks.com/projects/qtip/

写验证函数来检查所有文本字段,并与失败验证相应的字段添加的工具提示对象。



Answer 3:

最简单soulution是,检查是否字段为空,然后在这里展示的对话框是简单的代码片段

  private void checkEntries()
{

    if(!(email.getText().toString().equals("")))    
    {
        if(!(pass.getText().toString().equals("")))
        {
            if(UIHelper.getInstance().emailAddressValidation(email.getText().toString()))
            {
                if(pass.getText().length()>=5)
                {
                    sendLoginRequest(email.getText().toString(),pass.getText().toString(),Constants.PHONE_ID);
                }
                else
                {
                    dialogBoxInUIthread("String","Password length should be greater than 5 ",LoginController.this,true);
                }
            }
            else
            {

                dialogBoxInUIthread("String","Invalid Email Id",LoginController.this,true);

            }   
        }
        else
        {
            dialogBoxInUIthread("String","Please enter password",LoginController.this,true);
        }
    }
    else
    {
        dialogBoxInUIthread("String","Please enter email",LoginController.this,true);
    }

}



private void dialogBoxInUIthread(final String title,final String msg, Context context,final boolean completed) {
         /* runOnUiThread(new Runnable() {
           public void run() {*/
            AlertDialog.Builder alertbox = new AlertDialog.Builder(LoginController.this);
            alertbox.setTitle(title);
            alertbox.setMessage(msg);
            alertbox.setNeutralButton("OK", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface arg0, int arg1) {
                   if(completed){
                   }else{ }
               }
              });alertbox.show();
          /* }
          });*/
    }


Answer 4:

当你在执行方法后,点击按钮,你可以查看警报消息使用此功能验证

boolean flag_1= true,flag_2=true,flag_3=true;
String alertmsg;

private boolean validate()
{
    EditText et1    = (EditText)findViewById(R.id.et1);
    EditText et2    = (EditText)findViewById(R.id.et2);
    EditText et3    = (EditText)findViewById(R.id.et3);


    if(et1.getText().toString().isEmpty())
    {
        alertmsg+=  "Please fill 1st\n";
        flag_1  =   false;
    }
    if(et2.getText().toString().isEmpty())
    {
        alertmsg+=  "Please fill 2nd\n";
        flag_2  =   false;
    }
    if(et3.getText().toString().isEmpty())
    {
        alertmsg+=  "Please fill 3rd";
        flag_3  =   false;  
    }

    return flag_1||flag_2||flag_3;
}


Answer 5:

尝试这个 :

编辑:

调用此onClick你的过程输入按钮:

RelativeLayout rl = (RelativeLayout) findViewById(R.id.mRlayout1);
boolean success = formIsValid(rl);
if(success == false){
  // alert dialog box
}
else{
  // process ahead
}

声明此功能:

编辑:

public boolean formIsValid(RelativeLayout layout) {
    for (int i = 0; i < layout.getChildCount(); i++) {
        View v = layout.getChildAt(i);
        Class<? extends View> c = v.getClass();
        if (c == EditText.class) {
            EditText et = (EditText) v;
            if(et.getText().toString().equals(""))
                return false;
            //Toast.makeText(getApplicationContext(), ""+et.getText().toString(), Toast.LENGTH_LONG).show();                
        } 
    }
    return true;
}

通过这个,你可以验证具有单呼 输入控件的N多

谢谢。



文章来源: How to validate multiple edittext fields with a pop-up message or alert dialog box?