Android EditText setHint以编程方式无效

时间:2016-01-31 10:56:42

标签: android android-edittext

我有以下代码 - 当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" />

2 个答案:

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