Как создать подсказку EditText как текст с изображением в Android
Как создать EditText подсказку / заполнитель с текстом и изображением в Android. Я пишу так
<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"/>
Здесь мы можем видеть изображение и текст (подсказку) в тексте редактирования, но изображение все еще видно даже после того, как пользователь вводит что-то в это поле. Мое требование: если в EditText нет текста, показать подсказку с изображением, если EditText не пуст, скрыть текст подсказки и изображение
2 ответа
Что вы можете сделать, это установить drawableLeft
как вы сделали в своем XML и добавить addTextChangedListener
на ваш EditText. Когда происходит набор текста, этот слушатель будет предупрежден, и вы можете проверить в слушателе, если текстовый размер больше 0. Если это так, то просто установите drawableLeft
назначается в XML программно 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);
}
}
Я сделал это, поместив свой EditText внутри FrameLayout, а затем также включив TextView внутри FrameLayout. TextView служит текстом подсказки. У меня есть атрибут drawableStart в TextView. Когда пользователь начинает печатать, TextView скрывается с использованием кода, подобного тому, который был принят в ответе от Dion.