Android的EditText提示

我已经为EditText设置了提示,目前提示可见性已经消失。 当用户开始input时,我想删除提示文本,当光标在EditText可见时,而不是在用户开始input时。 我怎样才能做到这一点?

 <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"/> 

我不知道这样做的直接方式是否可用,但是你肯定有一个通过代码的解决方法:侦听EditText onFocus事件,并尽快获得焦点,设置暗示什么都没有editText.setHint("")

这可能不是你所要做的,但可能是这样的 –

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

你可以使用select器的概念。 onFocus删除提示。

 android:hint="Email" 

所以当TextView有焦点,或有用户input(即不是空的)提示将不会显示。

要完成Sunit的答案,您可以使用select器,而不是文本string,而是使用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> 
 et.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { et.setHint(temp +" Characters"); } });