Подтвердить что ты не робот

Saripaar formvalidation не работает второй раз в котлине

Я использую saripaar для проверки формы. У меня есть edittext в фрагменте A, при успешном завершении просмотра будет переключен на фрагментB.
Баттерфовый нож и сарипаарная аннотация в фрагменте.

@NotEmpty
@BindView(R.id.nameEditText)
lateinit var nameEditText: EditText

Инициализация сарипара:

 val validator = Validator(this)
 validator.setValidationListener(this)

Чтобы проверить поля:

validator.validate()

Валидация работает нормально в первый раз. Когда вы вернетесь из фрагмента B в фрагмент A, тогда проверка не будет работать, он будет напрямую вызывать onvalidationsuccess.

В onValidationSucceeded, я использую следующую функцию для переключения на фрагментB.

fun openFragment(fragment: Fragment) {
    val ft = activity.supportFragmentManager.beginTransaction()
    ft.replace(R.id.container, fragment)
    ft.addToBackStack(null)
    ft.commitAllowingStateLoss()
}

Эта проблема появляется только в kotlin, но не в java.

4b9b3361

Ответ 1

Я решил проблему, у меня есть все инициализация saripaar в basefragment, у меня есть следующий код в basefragment с нулевой проверкой для экземпляра проверки:

if(validator==null){  
 validator = Validator(this) 
 validator.setValidationListener(this) 
}

Как только я удалил нулевую часть проверки, теперь она работает нормально.

validator = Validator(this) 
validator.setValidationListener(this)