如何从addTextChangedListener了解文本的更改方式

时间:2012-09-24 18:58:28

标签: android android-edittext

我有一个带有EditText和ListView的屏幕。当您键入EditText时,会启动AsyncTask(任何现有的AsyncTask被取消并被抛出)以在本地查询某些数据以显示在ListView中。如果EditText没有文本,则查询并显示所有数据。实质上,EditText是屏幕上数据的过滤器。这很容易做到。在addTextChangedListener中,只需取消之前的AsyncTask,启动一个新的AsyncTask,然后传递给它s.toString()。

当用户点击退格区以删除EditText中的某些文本时,我想要默认行为(所有数​​据都填充列表)。这适用于我当前的addTextChangedListener实现。

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

如何防止这种情况?

1 个答案:

答案 0 :(得分:0)

使用boolean ignoreNextTextChangeKThxBye数据成员,根据需要设置/清除boolean并使用if()语句以避免进行查询。