Подсказка TextInputEditText, установленная программно, не переходит в фокус

Я меняю подсказку на основе номера телефона и идентификатора, если пользователь вводит номер, я программно устанавливаю подсказку на Введите 10 цифр, а когда пользователь вводит идентификатор, подсказка Введите 5 цифр Теперь проблема в том, что когда я фокусируюсь на TextInputEditText, подсказка не появляется.

<android.support.design.widget.TextInputLayout
        android:id="@+id/textinput_web_ref"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".75"
        android:textColorHint="@color/colorA">

        <android.support.design.widget.TextInputEditText
            android:id="@+id/tv_web_input"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:backgroundTint="@color/colorA"
            android:inputType="number"
            android:textColor="@color/colorTransparent"
            android:textColorHint="@color/colorA" />

    </android.support.design.widget.TextInputLayout>

код

if (title.getText().toString().contentEquals("ID")) {
    inputEditText.setHint("Enter 5 digits");
} else {
    inputEditText.setHint("Enter 10 digits");
}

person Nouman    schedule 25.11.2018    source источник


Ответы (1)


Попробуйте установить подсказку на TextInputLayout. Например:

if (title.getText().toString().contentEquals("ID")) {
    textInputLayout.setHint("Enter 5 digits");
} else {
    textInputLayout.setHint("Enter 10 digits"); 
}

TextInputLayout — это, как правило, макет, который оборачивает TextInputEditText, EditText или потомок, чтобы показать плавающую метку, когда подсказка скрыта, пока пользователь вводит текст. Таким образом, ваша подсказка становится плавающей меткой, когда пользователь пишет что-либо в textInputEditText.

person Alok Bharti    schedule 30.10.2019