11

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

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

萨里帕尔初始化:

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

要验证字段:

validator.validate()

验证第一次正常工作。当从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()
}

这个问题只出现在kotlin中,java中没有。

4

1 回答 1

4

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

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

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

validator = Validator(this) 
validator.setValidationListener(this) 
于 2017-10-17T13:42:20.020 回答