2017-10-11 45 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) 
相關問題