开发者

Android - TextWatcher is invoked once for each character in pasted text

开发者 https://www.devze.com 2023-02-20 15:23 出处:网络
I\'ve added a TextWatcher to an EditText and am listening for changes in the text via the onTextChanged(CharSequence s, int start, int before, int count) method. When I paste text that has say 10 char

I've added a TextWatcher to an EditText and am listening for changes in the text via the onTextChanged(CharSequence s, int start, int before, int count) method. When I paste text that has say 10 characters, into this EditText, onTextChanged() gets called 10 times, once for each character in the text I pasted, from left to right. I want onTextChanged() to be called only once after all 10 characters have been pasted into the Ed开发者_JAVA百科itText. I'm sure this should be possible, because otherwise what's the point in having the "count" param if it's always going to be 1?


count won't always be 1: for instance, if you select and delete a block of text or if you choose an autocomplete option.

In any case, the details of whether pasting happens in one chunk or one character at a time is an implementation detail, and if you rely on either behavior it's likely your app will break in the future.


Try using afterTextChanged it will only get one call

0

精彩评论

暂无评论...
验证码 换一张
取 消