检查所有EditText是否为空的方法始终返回true的问题,可以通过以下方式解决:
boolean isAllEditTextFilled(ViewGroup viewGroup) {
for (int i = 0; i < viewGroup.getChildCount(); i++) {
View view = viewGroup.getChildAt(i);
if (view instanceof EditText) {
EditText editText = (EditText) view;
if (editText.getText().toString().trim().isEmpty()) {
return false;
}
} else if (view instanceof ViewGroup) {
boolean isFilled = isAllEditTextFilled((ViewGroup) view);
if (!isFilled) {
return false;
}
}
}
return true;
}
这个方法会递归遍历所有的ViewGroup,找到其中的EditText控件,并检查其内容是否为空。如果有任何一个EditText为空,则返回false,否则返回true。
EditText editText1 = findViewById(R.id.editText1);
EditText editText2 = findViewById(R.id.editText2);
// 其他EditText控件的初始化
boolean isAllFilled = isAllEditTextFilled((ViewGroup) findViewById(R.id.rootLayout));
if (isAllFilled) {
// 所有EditText都不为空
} else {
// 存在空的EditText
}
在这个例子中,rootLayout
是包含所有EditText控件的最外层的ViewGroup。
总结:以上是一种检查所有EditText是否为空的方法,通过遍历所有EditText控件,并逐个进行非空判断,可以判断是否所有EditText都不为空。这种方法适用于各种包含EditText控件的布局,可以用于表单验证等场景。
领取专属 10元无门槛券
手把手带您无忧上云