When using EditText in combination with Design lib\'s (ver 22.2.1) TextInputLayout getting hint programmatically returns null.
I\'m trying to append asterisk \'*\'
Actually the hint moves to the parent view TextInputLayout
that surrounds the EditText
view:
You can get the hint like this:
android.support.design.widget.TextInputLayout parent = (android.support.design.widget.TextInputLayout) yourEditText.getParent();
String hint = parent.getHint().toString();
And if you want to add *
make it like this:
parent.setHint(parent.getHint() + "*");
Happy codding! :)
This is fixed in design support 23.0.0
but the project has to be compiled for api 23
.
build.gradle
android {
compileSdkVersion 23
buildToolsVersion '23'
....
}
dependencies{
compile 'com.android.support:appcompat-v7:23.0.0'
...
}
Setting the hint on the EditText
like before:
<android.support.design.widget.TextInputLayout
android:id="@+id/inputField"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hello_world"
android:inputType="text"/>
Now adding an extra character to the hint:
TextInputLayout inputField = (TextInputLayout) findViewById(R.id.inputLayout);
String hint = String.format("%s *", inputField.getHint());
inputField.setHint(hint);
Hint is linked with its's parent layout
((TextInputLayout)view.getParent()).getHint()