使用 for 循环检查编辑文本中的空值
Checking for null in edit text with for loop
我想使用 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()
}
}
}
}
}
由于您的代码已经包含在 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()
}
}
}
}
}
除此之外我没有检查你代码的逻辑。
我想使用 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()
}
}
}
}
}
由于您的代码已经包含在 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()
}
}
}
}
}
除此之外我没有检查你代码的逻辑。