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"); } });