(Android)Views数组简单形式验证器

时间:2015-06-16 09:29:11

标签: android forms validation

我编写了这个简单的表单验证器,以查看EditText字段是否为空。我从一个片段调用这个方法,但它似乎总是传递if语句,即使它是空的。这是我的代码:

 private boolean checkForm() {
                boolean returnValue = false;
                View[] view1;
                view1 = new View[] {(EditText) rootView.findViewById(R.id.name),
                        (EditText) rootView.findViewById(R.id.companyname),
                        (EditText) rootView.findViewById(R.id.email),
                        (EditText) rootView.findViewById(R.id.website),
                        (EditText) rootView.findViewById(R.id.other),
                        (EditText) rootView.findViewById(R.id.whichelements)
                };
                for(View item : view1)
                {
                    if(item.toString().trim().length() > 0){
                        returnValue = true;
                    }
                    else
                    {
                        returnValue = false;
                        break;
                    }
                }
                return returnValue;
            }

当我调试时,它也说字符串为空,你可以在mTransformed:http://gyazo.com/cfd58bc075b5cfbf01c0bce5f8702a15

看到这里

为什么条件总是为真,即使字符串不为空? String.Equals()也不起作用

2 个答案:

答案 0 :(得分:1)

它是因为item.toString()没有返回EditText的内容

 for(View item : view1) {
     if (TextUtils.isEmpty(((TextView)view).getText().toString())) {
        return false;
     } 
 }
 return true;

答案 1 :(得分:-1)

我认为因为这个布尔变量基于最后一个View。 并且您需要getTex()方法来获取EditText中的文本