gpt4 book ai didi

java - 过滤同一个ListView中的两个字符串

转载 作者:太空狗 更新时间:2023-10-29 15:04:54 24 4
gpt4 key购买 nike

我有一个包含 3 列表的 sqlite 数据库,我在我的布局中使用了一个编辑文本和一个 ListView。我现在所做的是使用 edittext 应用搜索并在 ListView 中显示过滤结果。

以下代码应用于名为 myFilter 的 edittext,words 是 implecursoradapter:

myFilter.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {

}

public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

public void onTextChanged(CharSequence s, int start, int before, int count) {
words.getFilter().filter(s.toString());
}
});

我想做的是过滤两个字符序列,例如我想在我的 listView 中显示以 a 和 b 开头的单词,我可以做类似的事情吗(例如 words.getFilter().filter ("a","b"); ?

最佳答案

创建自定义 FilterQueryProvider,如所述 here . constraint 参数应表示您的搜索查询(即将“a”和“b”打包到单个 CharSequence 中。它可以是 json、逗号分隔的字符串或SQL 查询)。然后在 runQuery(CharSequence constraint) 中过滤您的值,例如,像这样:

// Constraint is "a,b"
private FilterQueryProvider filterQueryProvider = new FilterQueryProvider() {
public Cursor runQuery(CharSequence constraint) {
String[] queryParameters = constraint.split(",");
for (int i = 0; i < queryParameters.length(); i++) {
queryParameters[i] += "%";
}
return db.query(TABLE_NAME, new String[] {"column_name"},
"column_name LIKE '?' OR column_name LIKE '?'", queryParameters , null, null, null);
}
};

然后通过一次调用完成过滤

words.getFilter().filter("a,b");

关于java - 过滤同一个ListView中的两个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22957050/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com