gpt4 book ai didi

android - AfterTextChanged 甚至在删除监听器后调用

转载 作者:行者123 更新时间:2023-11-29 21:17:47 25 4
gpt4 key购买 nike

我在 onItemSelect 中有一些修改 EditText 的代码,但在此之前我删除了它的 TextWatcher。不管怎样,在我修改 EditText 后立即调用 afterTextChanged 方法。我的方法是这样的:

   public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
switch (adapterView.getId()) {
case R.id.someId:
// Remove the listener
// make changes to the EditText
// add the listener

break;
}
}

我怎样才能真正移除监听器?如果我不删除它,它只会调用自己更多次。

最佳答案

解决方案是通知您的 TextWatcher 您将以编程方式修改文本。在编辑文本(而不是删除监听器)之前设置此标志(将其称为 enabled),并在修改完成后重置它。在您的 TextWatcher 中,您检查是否设置了此标志,如果设置了则忽略任何更改。

class MyTextWatcher extends TextWatcher {

boolean mIsEnabled = true;

public void setEnabled(boolean enabled) {
mIsEnabled = enabled;
}

@Override
protected afterTextChanged(Editable s) {
if (!enabled) return;
...
}

...
}

关于android - AfterTextChanged 甚至在删除监听器后调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21067952/

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