2017-10-11 83 views
10

我正在使用saripaar进行表单验证。我在fragmentA中有一些edittext,验证成功时,视图将切换到fragmentB。
碎片中的Butterknife和saripaar注释。Saripaar formvalidation不能在kotlin中第二次使用

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

Saripaar初始化:

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

为了验证字段:

validator.validate() 

验证是首次做工精细。当从fragmentB返回到fragmentA时,验证不起作用,它将直接调用invalidationsuccess。

onValidationSucceeded,我正在使用以下功能切换到fragmentB。

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

此问题只出现在kotlin中,但不在java中。

+0

与邮政相关的代码。 – azizbekian

+0

@azizbekian问题用代码更新。 – captaindroid

+1

从哪里执行'validator.validate()'?发布片段/活动也。 – azizbekian

回答

3

我解决了这个问题,我在basefragment所有saripaar初始化,我有以下的basefragment代码为null检查校验器实例:

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

当我删除空校验的部分,现在它的工作精细。

validator = Validator(this) 
validator.setValidationListener(this) 
相关问题