【发布时间】:2013-01-17 14:40:51
【问题描述】:
我有一个EditText 来过滤它下面ListView 中的项目,通常可能包含1000 多个项目。 TextWatcher 是:
txt_itemSearch.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
fillItemList();
}
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
});
这里的问题是,随着用户输入的每个字母,列表都会刷新,正是这种重复的列表更新导致 UI 变慢。
如何让TextWatcher 等待 1-2 秒,如果 2 秒后没有更多输入,则过滤列表。有什么建议吗?
【问题讨论】:
-
有什么建议吗? - 使用适配器的
getFilter()方法过滤ListView。 -
好的,但是过滤有点复杂。我还有几个复选框和其他要过滤的参数,所以我唯一的选择是通过 SQLite 查询来获取它。
标签: android android-listview android-edittext textwatcher