我正在使用saripaar进行表单验证。我在片段A中有一些编辑文本,验证成功后,视图将切换到片段B。
片中的黄油刀和萨里帕注释。
@NotEmpty
@BindView(R.id.nameEditText)
lateinit var nameEditText: EditText
萨里帕尔初始化:
val validator = Validator(this)
validator.setValidationListener(this)
要验证字段,请执行以下操作:
validator.validate()
验证首次工作正常。当从片段 B 返回到片段 A 时,验证不起作用,它将直接调用 onvalidationsuccess。
在验证成功时,我使用以下函数切换到片段B。
fun openFragment(fragment: Fragment) {
val ft = activity.supportFragmentManager.beginTransaction()
ft.replace(R.id.container, fragment)
ft.addToBackStack(null)
ft.commitAllowingStateLoss()
}
这个问题只出现在 kotlin 中,而不是在 java 中。
我解决了这个问题,我在基本片段中进行了所有 saripaar 初始化,我在基本片段中有以下代码,并对验证器实例进行了空检查:
if(validator==null){
validator = Validator(this)
validator.setValidationListener(this)
}
当我删除空检查部分时,现在它可以正常工作。
validator = Validator(this)
validator.setValidationListener(this)