gpt4 book ai didi

android - TextWatcher 事件被多次触发

转载 作者:IT老高 更新时间:2023-10-28 21:40:23 25 4
gpt4 key购买 nike

TextWatcher 有一个烦人的问题。我一直在网上搜索,但找不到任何东西。如果有人可以帮助我,将不胜感激。

出于某种原因,在一个文本更改时调用 TextWatcher 事件是不稳定的。有时它们会被触发一次(就像他们应该的那样),有时会被触发两次,有时会被触发 3 次。不知道为什么,整个事情非常简单。有时 afterTextChanged() 上的 Editable 参数在 toString() 和 length() 中返回空值。

代码如下:

    private TextWatcher mSearchAddressTextChangeListener = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) { }

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }

@Override
public void afterTextChanged(Editable searchedAddress) {
System.out.println("called multiple times.");
}
};

afterTextChanged() 内部(和 AsyncTask)我没有对文本或 EditText View 进行任何更改。

我看到 Events of TextWatcher are being called twice 中提出的问题,但我触发的事件多于(或少于)两次。

无论如何,感谢任何帮助。

编辑:我删除了 afterTextChanged() 的内容,因为即使没有我的代码也会发生此问题。是什么让我相信这是一个错误。当在常规字符后立即输入“空格”字符(触发事件处理程序两次)或删除常规字符后的“空格”字符(退格键。事件处理程序被触发 3 次)时,会发生该错误。我们将不胜感激。

最佳答案

我遇到了同样的问题,当我在连续文本的末尾用光标按下退格键时,afterTextChange 被调用了 3 次:- 第一次使用正确的 s 值- 第二次有明确的值(value)- 第三次再次使用正确的值

在网上搜索了很多之后,我尝试将我的 EditText inputType 更改为

android:inputType="textNoSuggestions"

不要问我为什么,但它起作用了,afterTextChanged 现在只被调用一次。

关于android - TextWatcher 事件被多次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17535415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com