我想使用 for 回圈檢查編輯文本中的空值,我不想在執行此操作時重復代碼。我試過這個,但有一個錯誤。你能幫助我嗎
binding.apply {
val editTextList: ArrayList<EditText> = ArrayList()
editTextList.add(binding.etRegistedFullname)
editTextList.add(binding.etRegistedEmail)
editTextList.add(binding.etRegistedAge)
editTextList.add(binding.etRegistedPassword)
editTextList.add(binding.etRegistedConfirmpassword)
editTextList.add(binding.etRegistedPhone)
//Bu for d?güsü sayaseinde 15 sat?r koddan kurtuldum
for (item in editTextList) {
// Toast.makeText(this@RegisterActivity,item.id.toString(),Toast.LENGTH_SHORT).show()
when {
TextUtils.isEmpty(editTextList.get(item.id).text.toString().trim { it <= ' ' }) -> {
editTextList.get(item.id).error = "Cannot be blank"
editTextList.get(item.id).requestFocus()
}
else -> {
if (isValidPassword(etRegistedPassword.text.toString().trim())) {
if (etRegistedPassword.text.toString().equals(etRegistedConfirmpassword.text.toString())) {
val user = getPerson()
authcreateUser(user)
} else {
Toast.makeText(
this@RegisterActivity,
"password and confirm password must be the same",
Toast.LENGTH_SHORT
).show()
}
} else {
etRegistedPassword.setError("At least one number, one lowercase letter, at least one uppercase letter, no spaces and a minimum of 8 characters")
etRegistedPassword.requestFocus()
}
}
}
}
}
uj5u.com熱心網友回復:
由于您的代碼已經包含在 中binding.apply,因此您不必繼續輸入binding.. 使用創建一個串列listOf比創建一個空的 ArrayList 然后一個一個地填充它更容易。
你的這段代碼沒有意義:
editTextList.get(item.id)
item已經是 EditText,因此您無需再次從串列中獲取它。List.get將在陣列中的該索引處查找專案,該專案與視圖的 ID 完全沒有關系。
binding.apply {
val editTextList = listOf(
etRegistedFullname,
etRegistedEmail,
etRegistedAge,
etRegistedPassword,
etRegistedConfirmpassword,
etRegistedPhone
)
//Bu for d?güsü sayaseinde 15 sat?r koddan kurtuldum
for (item in editTextList) {
// Toast.makeText(this@RegisterActivity,item.id.toString(),Toast.LENGTH_SHORT).show()
when {
TextUtils.isEmpty(item.text.toString().trim { it <= ' ' }) -> {
item.error = "Cannot be blank"
item.requestFocus()
}
else -> {
if (isValidPassword(etRegistedPassword.text.toString().trim())) {
if (etRegistedPassword.text.toString().equals(etRegistedConfirmpassword.text.toString())) {
val user = getPerson()
authcreateUser(user)
} else {
Toast.makeText(
this@RegisterActivity,
"password and confirm password must be the same",
Toast.LENGTH_SHORT
).show()
}
} else {
etRegistedPassword.setError("At least one number, one lowercase letter, at least one uppercase letter, no spaces and a minimum of 8 characters")
etRegistedPassword.requestFocus()
}
}
}
}
}
除此之外,我沒有檢查您的代碼的邏輯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/447089.html
