Android - TextWatcher вызывается один раз для каждого символа в вставленном тексте - PullRequest
1 голос
/ 30 марта 2011

Я добавил TextWatcher в EditText и слушаю изменения в тексте с помощью метода onTextChanged (CharSequence s, int start, int before, int count).Когда я вставляю текст, имеющий, скажем, 10 символов, в этот EditText, onTextChanged () вызывается 10 раз, по одному разу для каждого символа в тексте, который я вставил, слева направо.Я хочу, чтобы onTextChanged () вызывался только один раз после того, как все 10 символов были вставлены в EditText.Я уверен, что это должно быть возможно, потому что иначе какой смысл иметь параметр "count", если он всегда будет 1?

Ответы [ 2 ]

2 голосов
/ 30 марта 2011

count не всегда будет 1: например, если вы выберете и удалите блок текста или если вы выберете опцию автозаполнения.

В любом случае сведения о том, происходит ли вставка водин фрагмент или один символ за раз являются деталями реализации, и если вы полагаетесь на любое поведение, скорее всего, ваше приложение сломается в будущем.

0 голосов
/ 30 марта 2011

Попробуйте использовать afterTextChanged, он получит только один вызов

...