Це дещо більш загальна відповідь з більшим поясненням для майбутніх глядачів.
Додайте змінений слухач тексту
Якщо ви хочете знайти довжину тексту або зробити щось інше після того, як текст був змінений, ви можете додати редактор зміненого тексту до свого редагування.
EditText editText = (EditText) findViewById(R.id.testEditText);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence charSequence, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable editable) {
}
});
Слухач потрібен TextWatcher, який вимагає три способи бути перевизначені: beforeTextChanged, onTextChanged, і afterTextChanged.
Підрахунок символів
Ви можете отримати кількість символів в onTextChangedабо beforeTextChangedз ним
charSequence.length()
або в afterTextChangedс
editable.length()
Значення методів
Параметри трохи заплутані, тому ось трохи додаткового пояснення.
beforeTextChanged
beforeTextChanged(CharSequence charSequence, int start, int count, int after)
charSequence: Це текстовий вміст до внесення змін у очікуванні. Не слід намагатися це змінити.
start: Це індекс, куди буде вставлений новий текст. Якщо вибрано діапазон, то це початковий індекс діапазону.
count: Це довжина вибраного тексту, який буде замінено. Якщо нічого не буде обрано, тоді countбуде 0.
after: це довжина тексту, який потрібно вставити.
onTextChanged
onTextChanged(CharSequence charSequence, int start, int before, int count)
charSequence: Це текстовий вміст після внесення змін. Тут не слід намагатися змінювати це значення. Змініть editableв afterTextChangedразі потреби.
start: Це індекс початку, куди було вставлено новий текст.
before: Це старе значення. Саме довжина раніше вибраного тексту була замінена. Це те саме значення, що і countв beforeTextChanged.
count: Це довжина тексту, який було вставлено. Це те саме значення, що і afterв beforeTextChanged.
afterTextChanged
afterTextChanged(Editable editable)
Мовляв onTextChanged, це називається після того, як зміни вже внесені. Однак тепер текст може бути змінений.
editable: Цей текст можна редагувати EditText. Якщо ви її зміните, ви повинні бути обережними, щоб не потрапити в нескінченну петлю. Детальнішу інформацію див. У документації .
