输入文字布局中的错误或我的错误?

时间:2016-01-05 05:32:46

标签: android android-edittext

当用户在第一次尝试时输入正确的值然后很好,但是当用户在中设置错误后给出正确的输入时  使用然后editText的整个背景变黑并且设置错误时背景变为红色,而在焦点和输入类型正确时背景变为 colorAccent (工作室中的默认颜色名称)< / p>

XML

 <android.support.design.widget.TextInputLayout
            android:id="@+id/input_layout_email"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="5dp">

            <EditText
                android:id="@+id/reservation_email_edit_text"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="30dp"
                android:layout_marginRight="30dp"
                android:layout_marginTop="20dp"
                android:background="@drawable/reservation_edit_text_drawable"
                android:hint="Email"
                android:inputType="textWebEmailAddress"
                android:paddingLeft="10dp" />
        </android.support.design.widget.TextInputLayout>

 private boolean validateEmail() {

    String email = etEmail.getText().toString().trim();

    if (email.isEmpty() || !isValidEmail(email)) {
        ipEmail.setError("Enter valid email address");

        return false;
    } else {
        ipEmail.setErrorEnabled(false);
    }

    return true;
}

reservation_edit_text_drawable.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_focused="true"
    android:drawable="@drawable/red_border" />

<item android:drawable="@drawable/normal_border" />

</selector>

red_border.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<padding android:top="5dp"/>
<stroke android:width="1dp"
    android:color="#CC1F26" />
<size  android:height="48dp"/>
</shape>

normal_border.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<stroke android:width="1dp"
        android:color="@color/disabled_color" />
<size android:height="48dp"
    />
</shape>    

基本应用主题默认

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

截图

SCREENSHOT OF MY PROBLEM

3 个答案:

答案 0 :(得分:8)

使用自定义xml作为edittext背景时遇到了同样的问题。 删除它对我有用。 尝试删除行android:background="@drawable/reservation_edit_text_drawable"

答案 1 :(得分:1)

TextInputLayout存在一些已经发布的错误。

请参阅这些链接

  • TextInputLayout错误可见性错误(link
  • TextInputLayout在焦点(link
  • 之前不显示提示
  • TextInputLayout setError()清除后不会显示错误(link

答案 2 :(得分:1)

而不是设置Error为什么不使用Toast Message。我遇到了同样的问题所以我尝试了Toast Message。为此尝试下面的一些事情

- &GT;当用户单击“第二个字段”时,请先检查“编辑文本”是否正确填充。如果是,那么只有用户可以在第二个字段中输入数据,否则不会。