我有一个带有EditText和ListVIEw的屏幕.当您键入EditText时,将启动AsyncTask(取消并扔掉任何现有的AsyncTask)以在本地查询一些要在ListVIEw中显示的数据.如果EditText没有文本,将查询并显示所有数据.本质上,EditText是屏幕上数据的过滤器.这很容易做到.在addTextChangedListener中,只需取消先前的AsyncTask,启动一个新的AsyncTask,然后将其传递给s.toString().
当用户点击退格键以删除EditText中的某些文本时,我希望使用默认行为(所有数据填充列表).这适用于我当前的addTextChangedListener实现.
但是,我在EditText的右侧也有一个X按钮.这是为了清除EditText(EditText.setText(“”);).这是特例.在这种情况下,我不希望查询发生.问题是,addTextChangedListener似乎不够聪明,无法知道这一点.因为文本已更改并且查询了所有数据,所以它被触发.
我该如何预防?
解决方法:
使用布尔值ignoreNextTextChangeKThxBye数据成员,适当地设置/清除该布尔值,并使用if()语句避免执行查询.
总结以上是内存溢出为你收集整理的android-如何通过addTextChangedListener知道文本如何更改全部内容,希望文章能够帮你解决android-如何通过addTextChangedListener知道文本如何更改所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)