Я использую 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.