Android EditText Hint
Я установил подсказку для EditText
, в настоящее время видимость подсказки исчезла. Когда пользователь начинает вводить текст, я хочу удалить текст подсказки, когда курсор отображается в EditText
, а не в то время, когда пользователь начинает вводить текст. Как я могу это сделать?
<EditText
android:paddingLeft="10dp"
android:background="@drawable/edittextbg"
android:layout_marginLeft="4dp"
android:layout_marginTop="7dp"
android:gravity="left"
android:id="@+id/Photo_Comments"
android:layout_width="150dip"
android:maxLines="1"
android:hint="Write Caption"
android:maxLength="50"
android:singleLine="true"
android:maxWidth="100dip"
android:layout_height="wrap_content"/>
Ответы
Ответ 1
Я не знаю, доступен ли прямой способ сделать это, но вы наверняка найдете обходной путь через код: слушайте событие onFocus EditText
, и как только он набирает фокус, установите подсказку ничего с чем-то вроде editText.setHint("")
:
Это может быть не совсем то, что вам нужно сделать, но может быть что-то вроде этого -
myEditText.setOnFocusListener(new OnFocusListener(){
public void onFocus(){
myEditText.setHint("");
}
});
Ответ 2
Вы можете использовать концепцию селектора. onFocus удаляет подсказку.
android:hint="Email"
Поэтому, когда TextView
имеет фокус или имеет пользовательский ввод (т.е. не пустой), подсказка не будет отображаться.
Ответ 3
Чтобы завершить ответ Sunit, вы можете использовать селектор, а не текстовую строку, а textColorHint.
Вы должны добавить этот атрибут в свой editText:
android:textColorHint="@color/text_hint_selector"
И ваш text_hint_selector должен быть:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="@android:color/transparent" />
<item android:color="@color/hint_color" />
</selector>
Ответ 4
et.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
et.setHint(temp +" Characters");
}
});