我正在從Java轉移到Kotlin以進行Android開發。我想檢查EditText中的字段是否爲空。所以,我試圖讓這個:kotlin驗證輸入字段
override fun checkFields() {
val username = username.text.toString().trim().takeUnless { username.text.isNullOrEmpty() } ?: presenter.usernameError()
val password = password.text.toString().trim().takeUnless { password.text.isNullOrEmpty() } ?: presenter.passwordError()
presenter.signInWithUsernameAndPassword(username as String,password as String)
}
,但這裏有兩個問題:
- 它也傳遞給
signInWithUsernameAndPassword
此外,如果用戶名/密碼爲空 它崩潰,因爲給我這個錯誤:
java.lang.ClassCastException:kotlin.Unit不能轉換爲java.lang.String
爲什麼? takeUnless{}
將字符串轉換爲單位?
謝謝
您能否添加更多信息? 'presenter.usernameError()'方法也可能很有用。你也重新定義'username'和'password'這看起來不正確。 – tynn
你的意思是拋出'preseneter.usernameError()'和'presenter.passwordError()'的返回值嗎?如果是這樣,你需要在'?:'之後將語句分別更改爲'throw preseneter.usernameError()'和'throw presenter.passwordError()'。 – mfulton26
usernameError()和showError()必須打開一個對話框,告訴用戶該字段爲空@tynn – ste9206