Вы можете выполнять подсчет символов из самого xml с помощью оболочки TextInputLayout для EditText, представленной в SupportLibrary v23.1
Просто оберните свой EditText в TextInputLayout и установите CounterEnabled на true и установите counterMaxLength.
<android.support.design.widget.TextInputLayout
android:id="@+id/textContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:counterEnabled="true"
app:counterMaxLength="20"
>
<EditText
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Text Hint"
/>
</android.support.design.widget.TextInputLayout>
Вы получите существенное влияние , как это
Вы можете использовать counterOverflowTextAppearance , counterTextAppearance для стилизации счетчика.
РЕДАКТИРОВАТЬ
Из документации Android.
Класс TextInputEditText предоставляется для использования в качестве дочернего элемента этого макета. Использование TextInputEditText позволяет TextInputLayout лучше контролировать визуальные аспекты любого ввода текста. Пример использования такой:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/form_username"/>
</android.support.design.widget.TextInputLayout>
TextInputLayout TextInputEditText