Saripaar formvalidation第二次在kotlin工作

cap*_*oid 11 forms validation android kotlin saripaar

我正在使用saripaar进行表单验证.我在fragmentA中有一些edittext,在验证成功时,视图将切换到fragmentB.
Butterknife和saripaar注释片段.

@NotEmpty
@BindView(R.id.nameEditText)
lateinit var nameEditText: EditText
Run Code Online (Sandbox Code Playgroud)

Saripaar初始化:

 val validator = Validator(this)
 validator.setValidationListener(this)
Run Code Online (Sandbox Code Playgroud)

要验证字段:

validator.validate()
Run Code Online (Sandbox Code Playgroud)

验证第一次正常工作.当从fragmentB返回到fragmentA时,验证不起作用,它将直接调用onvalidationsuccess.

onValidationSucceeded上,我使用以下函数切换到fragmentB.

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

此问题仅出现在kotlin中,但不出现在java中.

cap*_*oid 4

我解决了这个问题,我在basefragment中进行了所有saripaar初始化,在basefragment中有以下代码,并对验证器实例进行了空检查:

if(validator==null){  
 validator = Validator(this) 
 validator.setValidationListener(this) 
}
Run Code Online (Sandbox Code Playgroud)

当我删除空检查部分时,现在它工作正常。

validator = Validator(this) 
validator.setValidationListener(this) 
Run Code Online (Sandbox Code Playgroud)