如何知道,从addTextChangedListener,文字是如何改变(How to know,

2019-07-31 21:19发布

我有一个EditText和一个ListView的屏幕。 当你键入到EditText上,一个的AsyncTask启动(任何现有的AsyncTask被取消,并扔)在本地查询一些数据在ListView显示。 如果是的EditText空文本,所有的数据中查询和显示。 从本质上讲,是的EditText在屏幕上的数据的过滤器。 这是很容易做到。 在addTextChangedListener,只需取消以前的AsyncTask,推出一个新的,并传递给它s.toString()。

当用户点击退格以擦除的EditText一些文字,我想默认行为(所有数​​据填充列表)。 这适用于我的当前实现addTextChangedListener的。

不过,我也有我的EditText右侧的X按钮。 这是为了清除出的EditText( EditText.setText(""); )。 这是一个特殊情况。 在这种情况下,我不希望查询的情况发生。 问题是,addTextChangedListener似乎并不足够聪明,知道这一点。 它被触发,因为文本已发生变化,所有数据中查询。

如何避免这种情况?

Answer 1:

使用boolean ignoreNextTextChangeKThxBye数据成员,设置/清除该boolean酌情使用if()语句,以避免做查询。



文章来源: How to know, from addTextChangedListener, how the text has changed