2

I'm using a style for TextInputEditText to put a border around the field and I'm usingTextInputLayout to set error messages. But when setError () is called the border disappears and remains only a space in place that should have a field.

xml:

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

                 <android.support.design.widget.TextInputEditText
                    android:id="@+id/edittext"
                    android:layout_width="300dp"
                    android:layout_height="wrap_content"
                    style="@style/EditTextStyle"
                    android:textColor="@color/secondary_text"
                    android:paddingTop="@dimen/float_hint_margin"
                    android:textSize="15dp" />
            </android.support.design.widget.TextInputLayout>

EditTextStyle:

<style name="EditTextStyle">
        <item name="android:textColor">@color/secondary_text</item>
        <item name="android:background">@drawable/lgedittext</item>
        <item name="android:paddingTop">5dp</item>
        <item name="android:textSize">12dp</item>
        <item name="android:layout_marginTop">5dp</item>
        <item name="android:layout_height">30dp</item>
    </style>

lgedittext:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="@dimen/float_hint_margin">
        <shape>
            <solid android:color="@color/icons" />
            <stroke
                android:width="1dp"
                android:color="@color/divider" />
            <corners android:radius="8dp" />
        </shape>
    </item>
</layer-list>

Activity:

final TextInputEditText field = (TextInputEditText) dialog.findViewById(R.id.edittext);
final TextInputLayout input = (TextInputLayout) view.findViewById(R.id.input);
String text = field.getText().toString();
   if (!text.equals("")) {
      //do something
   } else {
      input.setError(getString(R.string.error_empty));
   }
Éowyn
  • 187
  • 3
  • 17

0 Answers0