0

我将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,然后按了发送。姓氏字段上有警告。在姓氏字段中输入 Jong,但感叹号不会隐藏。并且该字段确实测试有效!

在此处输入图像描述

4

1 回答 1

2

正如建议的那样,我将发表我的评论作为答案:

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

于 2013-07-10T12:16:00.600 回答