在所有验证完成之前,如何防止导航?

时间:2018-09-11 13:20:12

标签: android forms validation

我想向表单添加验证。但是有一个问题,我按下提交按钮,它显示了快速的验证,并将空白表格提交给了recyclerview。如果有的话,请给我解决方案。

4 个答案:

答案 0 :(得分:3)

    /**
     * Performs action to submit the form if all the validations are fulfilled
     */

    public void submitForm() {

        if (validateFields()) {
            //Todo add your form submission code here
        }
    }


    /**
     * Validate all the fields present in the form according to the requirements
     * Returns true if there is no validation error, false otherwise.
     */
    public boolean validateFields() {

        if (editTextEmail.getText().toString().isEmpty()) {
            //Show toast or snackbar for validation failed
            return false;
        } else if (//todo another validation code)
        {
        //Show toast or snackbar for validation failed
        return false;
    }
         return true;
}

答案 1 :(得分:2)

如果所有验证均已完成,则执行提交表单的操作

public void submitForm() {

    if (validateInputFields()) {
        //Todo add your form submission code here
    }
}

根据要求验证表单中存在的所有字段

如果没有验证错误,则返回true,否则返回false。

public boolean validateInputFields() {
   if (TextUtils.isEmpty(email)) {
     //Show toast or snackbar for validation failed
        return false;     
    }      
  else if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
        //Show toast or snackbar for validation failed
        return false;
    }
  else if (//todo another validation code)
    {
    //Show toast or snackbar for validation failed
    return false;
    }
     return true;

}

答案 2 :(得分:1)

您可以这样:

    public void clickAction(){

       if(validateFields()){
       //Todo add your form submission code here
       }
    }


    public boolean validateFields(){

        if(editTextEmail.getText().toString().isEmpty()){
            //Show toast validation failed
            return false;
        }else if(//todo another validation code){
            return false;
        }
         return true;
    }

答案 3 :(得分:0)

请尝试以下验证方法,如果该方法无效,请在此处共享您的代码,以进一步研究问题。

:not(.googlemaps) > * > * > * > * > * > * > * > label