Reputation: 4241
How to create EditText hint/placeholder with Text & image in android. I write like this
<EditText
android:id="@+id/name"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:lines="1"
................................
...............................
android:drwableLeft="@drawable/image1"
android:hint="enter name here"/>
Here we can see image & text (hint) within edittext but image still visible even after user enters something in that field. My requirement is if there is no text in EditText show hint with image, if EditText is not empty hide hint text and image
Upvotes: 9
Views: 12208
Reputation: 372
I did this by placing my EditText inside a FrameLayout, and then also including a TextView inside the FrameLayout. The TextView serves as the hint text. I have a drawableStart attribute on the TextView. When the user starts typing the TextView is hidden using code similar to that in the accepted answer from Dion.
Upvotes: 0
Reputation: 2655
What you can do is set an drawableLeft
as you did in your xml and add an addTextChangedListener
to your EditText. When typing occurs this listener will be warned and you can check in the listener if the textsize is bigger than 0. If so, then just set the drawableLeft
assigned in the xml programmatically to null
.
@Override
public void afterTextChanged(Editable s) {
if(s.toString().length() > 0) {
editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
} else {
//Assign your image again to the view, otherwise it will always be gone even if the text is 0 again.
editText.setCompoundDrawablesWithIntrinsicBounds(R.drawable.image, 0, 0, 0);
}
}
Upvotes: 12