Android EditText提示

时间:2010-12-07 06:13:25

标签: android

我已为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 个答案:

答案 0 :(得分:55)

您可以使用选择器的概念。 onFocus删除了提示。

android:hint="Email"

因此,当TextView具有焦点或具有用户输入(即非空)时,提示将不会显示。

答案 1 :(得分:30)

我不知道这样做的直接方式是否可用,但您肯定会通过代码解决方法:监听EditText的onFocus事件,并且一旦获得焦点,请设置提示与editText.setHint("")

之类的东西无关

这可能不是你必须做的,但可能是这样的 -

myEditText.setOnFocusListener(new OnFocusListener(){
  public void onFocus(){
    myEditText.setHint("");
  }
});

答案 2 :(得分:18)

要完成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>

答案 3 :(得分:2)

et.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {

            et.setHint(temp +" Characters");
        }
    });