Android EditText Hint - PullRequest
       8

Android EditText Hint

42 голосов
/ 07 декабря 2010

Я установил подсказку для 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"/>

Ответы [ 4 ]

55 голосов
/ 07 декабря 2010

Вы можете использовать концепцию селектора. onFocus удаляет подсказку.

android:hint="Email"

Таким образом, когда TextView имеет фокус или имеет пользовательский ввод (т.е. не пустой), подсказка не будет отображаться.

30 голосов
/ 07 декабря 2010

Я не знаю, доступен ли прямой способ сделать это или нет, но вы наверняка найдете обходной путь с помощью кода: прослушайте событие onFocus EditText, и как только оно получит фокус, установите подсказку на быть ничем с чем-то вроде editText.setHint(""):

Это может быть не совсем то, что вам нужно сделать, но это может быть что-то вроде этого -

myEditText.setOnFocusListener(new OnFocusListener(){
  public void onFocus(){
    myEditText.setHint("");
  }
});
19 голосов
/ 07 февраля 2014

Чтобы завершить ответ 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>
2 голосов
/ 17 декабря 2016
et.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {

            et.setHint(temp +" Characters");
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...