При использовании EditText в сочетании с Design lib (версия 22.2.1) TextInputLayout при получении подсказки программно возвращает значение null.
Я пытаюсь программно добавить звездочку '*' к обязательному полю, следовательно, EditText.getHint()
, но тот факт, что он возвращает null, является проблемой в этом случае.
EditText editText = (EditText) findViewById(R.id.edit2);
String hint = String.format("%s *", editText.getHint());
editText.setHint(hint);
Простая иллюстрация кода: Layout.xml:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edit2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hello_world"
android:inputType="text"/>
</android.support.design.widget.TextInputLayout>
Джава:
EditText editText = (EditText) findViewById(R.id.edit2);
if (editText.getHint() == null) throw new AssertionError("Hint should not be null");
зависимость: скомпилировать 'com.android.support:design:22.2.1'
Ранее связанная проблема здесь а>!
TextInputLayout
. Вы можете попробовать другие реализации плавающих меток. - person CommonsWare   schedule 30.07.2015