Android 如何从addTextChangedListener了解文本是如何更改的

Android 如何从addTextChangedListener了解文本是如何更改的,android,android-edittext,Android,Android Edittext,我有一个带有EditText和ListView的屏幕。当您在EditText中键入时,将启动一个AsyncTask(取消并抛出任何现有AsyncTask),以在本地查询要在ListView中显示的某些数据。如果EditText没有文本,则查询并显示所有数据。本质上,EditText是屏幕上数据的过滤器。这很容易做到。在addTextChangedListener中,只需取消以前的异步任务,启动一个新任务,并将其传递给s.toString() 当用户点击backspace删除EditText中的一

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

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

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


如何防止这种情况发生?

使用一个
布尔IgnorenextChangekthxBye
数据成员,根据需要设置/清除该
布尔值
,并使用
if()
语句来避免进行查询。

Lol,是的,我认为这会起作用。这是在Apache许可证下吗?:)@安德鲁:我并不是拥有以LOLCAT为主题的变量名的专有权。:-)必须是A-scratch-e许可证:)