I have an EditText
wrap with TextInputLayout
- that will get an organization's mission/vision.
The TextInputLayout
will notify how many words left, it will split the string if encountered a space.
The problem was it doesn't count words, instead it count characters.
Here's my sample code:
appCompatEditTextEventThirdContents.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
final int maxWords = 500;
String[] words = s.toString().split(" ");
int currentWords = words.length;
try{
if (currentWords < maxWords) {
appCompatEditTextEventThirdContents.setHint("Third Paragraph " + (maxWords - currentWords) + "left");
}
else if (currentWords >= maxWords ){
appCompatEditTextEventThirdContents.setHint("Exceeded 500 words.");
}
}catch (NumberFormatException e){
e.printStackTrace();
}
}
});
Here's my layout view.
<!--THIRD PARAGRAPH-->
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textInputThirdEventParag"
android:hint="@string/paragThird"
android:layout_below="@+id/textInputSecondEventParag"
android:layout_centerHorizontal="true">
<android.support.v7.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editTextPG3"
android:scrollbars="vertical|horizontal"
android:minLines="5"
android:maxLines="10"
android:maxLength="500"
android:singleLine="false"/>
</android.support.design.widget.TextInputLayout>
I base splitting strings here.