我有以下代码 - 当EditText
处于焦点时我希望提示消失,否则显示回来。在调试中,我看到EditText
已正确失去焦点(执行setHint
代码行),但未显示提示(提示删除但不会丢失焦点)。我仔细检查了代码中的其他地方,除了下面的hasFocus
之外,我不会用删除提示的内容覆盖它。
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
editText.setHint(getString(R.string.empty_string));
} else {
editText.setHint(getString(R.string.hint_string));
}
}
});
<EditText
android:layout_width="match_parent"
android:layout_height="56dp"
android:hint="@string/hint_string"
android:textSize="22sp"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:fontFamily="sans-serif-light"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:paddingLeft="24dp"
android:paddingRight="24dp"
android:elevation="3dp"
android:textCursorDrawable="@null"
android:background="@color/primary_accent"
android:layout_below="@id/main_activity_toolbar"
android:layout_gravity="center_horizontal" />
答案 0 :(得分:1)
希望这会有所帮助:
editText.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
editText.setHint("");
return false;
}
});
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus){
editText.setHint("Hint");
}
}
});
答案 1 :(得分:1)
试试这个......
< EditText
android:id="@+id/show_time_search_text"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:layout_weight="1"
android:background="@color/full.tranparent"
android:cursorVisible="false"
android:hint="Your hint text"
android:inputType="text"
android:textColor="@color/black"
android:textColorHint="#c6c6c6"
android:textSize="14.2dp" />