android– 实时过滤ListView

android– 实时过滤ListView,第1张

概述我想实时过滤ListView.我在ActionBar中有一个EditText,每次用户写一个字符时我想更新ListView过滤信息的光标.我已经完成了AsyncTask来执行查询,但我有两个问题:1º)如果用户键入三个字符,我将创建三个AsyncTasks(一个用于搜索第一个字符,一个用于搜索两个第一个字符,最后一个用于

我想实时过滤ListVIEw.我在Actionbar中有一个EditText,每次用户写一个字符时我想更新ListVIEw过滤信息的光标.

我已经完成了AsyncTask来执行查询,但我有两个问题:

1º)如果用户键入三个字符,我将创建三个AsyncTasks(一个用于搜索第一个字符,一个用于搜索两个第一个字符,最后一个用于搜索三个字符).是否有一种简单的方法可以说AsyncTask用新的任务替换上一个任务?

2º)如何设置一个小延迟来启动AsyncTask?因此,如果用户在不停止的情况下键入三个字符,我将不会在结束之前创建AsyncTask.

谢谢!

解决方法:

嗯…不完全确定为什么你实时使用AsyncTask进行搜索.这就是我(并且已经成功)做到的方式.

将Textchangelistener添加到Edittext:

editText.addTextChangedListener(new TextWatcher() {        @OverrIDe        public voID onTextChanged(CharSequence s, int start, int before, int count) {            searchResults = myDbHelper.searchAll(s.toString());            searchAdapter.notifyDataSetChanged();        }        @OverrIDe        public voID beforeTextChanged(CharSequence s, int start, int count,                int after) {        }        @OverrIDe        public voID afterTextChanged(Editable s) {            // Todo auto-generated method stub        }    });

每次用户按下键时,我都在搜索sqlite数据库.我的searchResults用于填充ListVIEw,因此在设置获取搜索结果后,告诉列表适配器数据集已更改.

希望这可以帮助.

总结

以上是内存溢出为你收集整理的android – 实时过滤ListView全部内容,希望文章能够帮你解决android – 实时过滤ListView所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1106084.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存