正确输入后,FormEditText不会清除

时间:2013-07-10 08:46:05

标签: android

我将FormEditText小部件用于表单(显然)。事情是:在测试无效一次后,即使输入正确的输入并且field.testValidity()返回true,警告红色感叹号也不会消失。我还没有找到FormEditText手动清除它的方法。 有人经历过这个吗?

这是我从操作栏中点按发送按钮时使用的方法:

public boolean checkFields() {

    FormEditText[] allFields = { firstname, lastname, street, zip, city,
            email, phone };

    boolean allValid = true;
    FormEditText firstFailedField = null;
    for (FormEditText field : allFields) {
        if (!field.testValidity()) {

            Log.d("FOR", "failed field: " + field.getHint());

            allValid = false;

            if (firstFailedField == null) {
                firstFailedField = field;
            }
        }

    }

    if (allValid) {

    } else {
        firstFailedField.requestFocus();
    }

    return allValid;

}

这是我布局的一部分:

   <com.andreabaccega.widget.FormEditText
            android:id="@+id/firstname"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:ems="10"
            android:hint="Vorname"
            android:inputType="textPersonName"
            android:singleLine="true"
            whatever:customRegexp="[a-zA-Z]{2,}"
            whatever:emptyErrorString="Bitte Vornamen angeben"
            whatever:testErrorString="Bitte Vornamen angeben"
            whatever:testType="regexp" >
        </com.andreabaccega.widget.FormEditText>

        <com.andreabaccega.widget.FormEditText
            android:id="@+id/lastname"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:ems="10"
            android:hint="Nachname"
            android:inputType="textPersonName"
            android:singleLine="true"
            whatever:customRegexp="[a-zA-Z]{2,}"
            whatever:emptyErrorString="Bitte Nachnamen angeben"
            whatever:testErrorString="Bitte Nachnamen angeben"
            whatever:testType="regexp" >
        </com.andreabaccega.widget.FormEditText>

我在名字字段中输入Kim,按下发送。在姓氏字段上发出警告。在姓氏字段中输入J​​ong,但感叹号不会隐藏。并且该领域的测试有效!

enter image description here

1 个答案:

答案 0 :(得分:2)

根据建议,我会发表评论作为答案:

您可以尝试使用field.setError(null):这样您就可以隐藏EditText中的错误。它应该适用于FormEditText,因为FormEditText扩展了EditText。