当用户在第一次尝试输入正确的值时,它很好,但是当用户在 edittext 中设置错误后给出正确的输入时 与 textinputlayout然后 editText 的整个背景变黑,当设置错误时背景变红,当焦点和输入类型正确时背景变 colorAccent(工作室中的默认颜色名称)
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">
截图
最佳答案
我在使用自定义 xml 作为 edittext 背景时遇到了同样的问题。
删除它对我有用。
尝试删除行 android:background="@drawable/reservation_edit_text_drawable"
关于android - 输入文本布局中的错误还是我的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34604813/