如何在不触发 Text Watcher 的情况下更改 EditText 文本? [英] How can I change the EditText text without triggering the Text Watcher?

查看:67
本文介绍了如何在不触发 Text Watcher 的情况下更改 EditText 文本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有 Customer Text Watcher 的 EditText 字段.在一段代码中,我需要使用 .setText("whatever").

I have an EditText field with a Customer Text Watcher on it. In a piece of code I need to change the value in the EditText which I do using .setText("whatever").

问题是,一旦我进行了更改,就会调用 afterTextChanged 方法,这会创建一个无限循环.如何在不触发 afterTextChanged 的​​情况下更改文本?

The problem is as soon as I make that change the afterTextChanged method gets called which created an infinite loop. How can I change the text without it triggering afterTextChanged?

我需要 afterTextChanged 方法中的文本,所以不建议删除 TextWatcher.

I need the text in the afterTextChanged method so don't suggest removing the TextWatcher.

推荐答案

你可以注销watcher,然后重新注册.

You could unregister the watcher, and then re-register it.

或者,您可以设置一个标志,以便您的观察者知道您何时自己更改了文本(因此应该忽略它).

Alternatively, you could set a flag so that your watcher knows when you have just changed the text yourself (and therefore should ignore it).

这篇关于如何在不触发 Text Watcher 的情况下更改 EditText 文本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆