Java – How do I change the bottom line color and hint color of TextInputEditText?

How do I change the bottom line color and hint color of TextInputEditText?… here is a solution to the problem.

How do I change the bottom line color and hint color of TextInputEditText?

I’m using TextInputLayout and TetInputEditText to get float hints. Now I want to change the color of the prompt and edit the bottom line of the text. I want it to change when the user clicks Edit Text.

So I tried changing the onClickListener color for editing text. But I didn’t notice any change in color.

XML layout:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white"
    android:orientation="vertical">

<LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

<android.support.design.widget.TextInputLayout
            android:id="@+id/input_layout_item_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_marginTop="20dp"
            android:paddingTop="05dp">
        <android.support.design.widget.TextInputEditText
            android:layout_width="240dp"
            android:layout_height="45dp"
            android:id="@+id/editTextItemName"
            android:layout_gravity="center_horizontal"
            android:hint="@string/item_name"
            android:textSize="12sp" />
        </android.support.design.widget.TextInputLayout>
    </LinearLayout>

java code:

      public void setUpUI(){

edt_Item_Name = (TextInputEditText) findViewById(R.id.editTextItemName);
        edt_Item_quantity = (TextInputEditText)findViewById(R.id.editTextItemQuantity);
        edt_Item_Unit = (TextInputEditText)findViewById(R.id.editTextItemUnit);

textInput_Item_name = (TextInputLayout)findViewById(R.id.input_layout_item_name);
        textInput_Item_quantity = (TextInputLayout)findViewById(R.id.input_layout_item_quantity);
        textInput_Item_Unit = (TextInputLayout)findViewById(R.id.input_layout_item_unit);

edt_Item_Name.getBackground().mutate().setColorFilter(ContextCompat.getColor(this, R.color.edtColor), PorterDuff.Mode.SRC_ATOP);

edt_Item_Name.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                edt_Item_Name.setHintTextColor(ContextCompat.getColor(SearchActivity.this, R.color.edtColor));
                edt_Item_Name.getBackground().mutate().setColorFilter(ContextCompat.getColor(SearchActivity.this, R.color.edtColor), PorterDuff.Mode.SRC_ATOP);
            }
        });
    }

}

Output: Enter image description here

How can I do this?

Solution

Define colors in the colors.xml file

<color name="colorControlNormal">#c5c5c5</color>
<color name="colorControlActivated">@color/accent</color>
<color name="colorControlHighlight">@color/accent</color>

and create styles in styles.xml

<style name="TextAppearence.App.TextInputLayout"  parent="@android:style/TextAppearance">
     <item name="android:textColor">@color/main_color</item>
</style>

and applied to your TextInputLayout

 app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout"
 android:textColorHint="#0072BA"

Change your code to:

 <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

<android.support.design.widget.TextInputLayout
            android:id="@+id/input_layout_item_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_marginTop="20dp"
            android:paddingTop="05dp"
            app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout"
            android:textColorHint="#0072BA">
        <android.support.design.widget.TextInputEditText
            android:layout_width="240dp"
            android:layout_height="45dp"
            android:id="@+id/editTextItemName"
            android:layout_gravity="center_horizontal"
            android:hint="@string/item_name"
            android:textSize="12sp" />
        </android.support.design.widget.TextInputLayout>
    </LinearLayout>

Related Problems and Solutions