Как предотвратить навигацию, пока вся проверка не будет выполнена? - PullRequest
0 голосов
/ 11 сентября 2018

Я хочу добавить подтверждение в мою форму.Но есть одна проблема: я нажимаю кнопку «Отправить», она быстро показывает проверку и пустую форму, отправляемую в переработчик.пожалуйста, дайте мне решение, если у вас есть.

Ответы [ 4 ]

0 голосов
/ 21 сентября 2018

Выполняет действие для отправки формы, если все проверки выполнены.

public void submitForm() {

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

Проверка всех полей, присутствующих в форме, в соответствии с требованиями

Возвращает значение true, если ошибки проверки нетложь в противном случае.

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;

}

0 голосов
/ 11 сентября 2018

Попробуйте метод проверки ниже, если он не работает, пожалуйста, поделитесь кодом здесь, чтобы больше узнать о вашей проблеме.

if (editTextName.getText().toString().trim().length() <= 0 || 
   editTextAge.getText().toString().trim().length() <= 0) {
     Toast.makeText(LoginActivity.this, "Fields should not be blank", 
     Toast.LENGTH_LONG).show();
} else {
   callSubmitFormApi();
}
0 голосов
/ 21 сентября 2018
    /**
     * 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;
}
0 голосов
/ 11 сентября 2018

Вы можете пойти так:

    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;
    }
...