EditText.setError不显示错误文本,仅显示图标

时间:2016-01-08 05:14:23

标签: android validation android-edittext

我的应用程序中有一个简单的验证,这里我使用了四个EdtiText。我在EditTex失去焦点时显示错误,但问题是仅失去焦点EditText显示没有错误消息的图标。我已经尝试使用requestFocus()方法,现在可以看到错误,但问题是..现在我的表单显示两个游标,即使第一个字段无效并显示错误,无论我输入的是什么,都会进入第二个{{ 1}}。任何人都可以帮我解决这个问题吗? 谢谢。

这是我的xml文件 -

EdtiText

这是我的主要文件,我正在检查验证

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:hint="first name"
android:id="@+id/edt_first_name"/>

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="last name"
    android:id="@+id/edt_last_name"
    android:singleLine="true"
    android:layout_below="@+id/edt_first_name"/>
<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="email"
    android:singleLine="true"
    android:id="@+id/edt_email"
    android:layout_below="@+id/edt_last_name"/>

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="password"
    android:singleLine="true"
    android:imeOptions="actionNext"
    android:id="@+id/edt_password"
    android:layout_below="@+id/edt_email"/>

1 个答案:

答案 0 :(得分:2)

对材料TextInputLayout使用EditText,如:

<android.support.design.widget.TextInputLayout
            android:id="@+id/input_application_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="30dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:minHeight="50dp"
            android:theme="@style/MyTextInputLayout"
            app:hintTextAppearance="@style/TextAppearance.App.TextInputLayout">

            <EditText
                android:id="@+id/application_name"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/hint_application_name"
                android:imeOptions="actionNext"
                android:inputType="text" />

        </android.support.design.widget.TextInputLayout>

并在Activity

TextInputLayout til = (TextInputLayout) findViewById(R.id.input_application_name);
EditText applicationNameEdt = (EditText) findViewById(R.id.application_name);
til.setErrorEnabled(true);
til.setError("You need to enter a name");