Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-TextWatcher对粘贴文本中的每个字符调用一次_Android_Count_Character_Paste_Textwatcher - Fatal编程技术网

Android-TextWatcher对粘贴文本中的每个字符调用一次

Android-TextWatcher对粘贴文本中的每个字符调用一次,android,count,character,paste,textwatcher,Android,Count,Character,Paste,Textwatcher,我在EditText中添加了一个TextWatcher,并通过onTextChanged(CharSequence s,int start,int before,int count)方法监听文本中的更改。当我将包含10个字符的文本粘贴到这个EditText中时,会从左到右调用onTextChanged()10次,对我粘贴的文本中的每个字符调用一次。我希望在将所有10个字符粘贴到EditText后,只调用一次onTextChanged()。我相信这应该是可能的,因为如果“count”参数始终为1,

我在EditText中添加了一个TextWatcher,并通过onTextChanged(CharSequence s,int start,int before,int count)方法监听文本中的更改。当我将包含10个字符的文本粘贴到这个EditText中时,会从左到右调用onTextChanged()10次,对我粘贴的文本中的每个字符调用一次。我希望在将所有10个字符粘贴到EditText后,只调用一次onTextChanged()。我相信这应该是可能的,因为如果“count”参数始终为1,那么它的意义何在?

count
不会始终为1:例如,如果选择并删除一个文本块,或者选择自动完成选项


在任何情况下,粘贴是一次粘贴一个区块还是一个字符的细节都是一个实现细节,如果您依赖于这两种行为,那么您的应用程序将来很可能会崩溃。

count
并不总是1:例如,如果您选择并删除一块文本或选择自动完成选项


在任何情况下,粘贴一次是在一个块中还是在一个字符中进行的细节都是一个实现细节,如果您依赖这两种行为,您的应用程序很可能会在将来中断。

尝试使用PostTextChanged它将只收到一个呼叫

尝试使用PostTextChanged它将只收到一个呼叫

不正确。每次调用onTextChanged()后立即调用PostextChanged()。不是true。每次调用onTextChanged()后,都会立即调用PostextChanged()。我的错!根据粘贴新文本的位置,将调用onTextChanged()1、2或3次。如果要粘贴文本的EditText中没有文本,则执行一次。如果新文本粘贴在原始文本的开头或结尾,则粘贴两次。如果新文本粘贴在原始文本之间的某个位置,则为第三次。原因是,如果粘贴发生在另一个角色的旁边,Android会在两者之间插入一个空格。空格插入发生在实际文本插入之前。所以,一个更合适的问题是,是否有办法防止插入空格?我的错!根据粘贴新文本的位置,将调用onTextChanged()1、2或3次。如果要粘贴文本的EditText中没有文本,则执行一次。如果新文本粘贴在原始文本的开头或结尾,则粘贴两次。如果新文本粘贴在原始文本之间的某个位置,则为第三次。原因是,如果粘贴发生在另一个角色的旁边,Android会在两者之间插入一个空格。空格插入发生在实际文本插入之前。所以一个更合适的问题是,是否有办法防止插入空格?是的,在执行删除操作时,计数将为0。我试图在粘贴完成后做一些事情,所以这对我来说很重要。我希望平台的行为是一致的。粘贴操作中有一些功能,可以在文本前后插入空格,作为粘贴操作的一部分。警告:在处理程序中设置文本时,如果文本设置为空,则在尝试插入与预期内容不同的文本时,可能会导致此操作崩溃。在粘贴文本之前/之后插入空格还会导致额外触发ContextChanged(和其他)事件。是的,如果执行删除操作,计数将为0。我试图在粘贴完成后做一些事情,所以这对我来说很重要。我希望平台的行为是一致的。粘贴操作中有一些功能,可以在文本前后插入空格,作为粘贴操作的一部分。警告:在处理程序中设置文本时,如果文本设置为空,则在尝试插入与预期内容不同的文本时,可能会导致此操作崩溃。在粘贴文本之前/之后插入空格也会导致额外触发ContextChanged(和其他)事件。