【发布时间】:2017-04-16 05:27:07
【问题描述】:
我有一个自定义过滤器。
public void filter(String filter) {
Restau.clear();
if (filter != null && filter.trim().length() > 0) {
for (restauInfoDB element : tempRestList) {
if ( element.getOh().toLowerCase().contains(filter) ||element.getCost().toLowerCase().contains(filter) || element.getResname().toLowerCase().contains(filter) || element.getType().toLowerCase().contains(filter) || element.getResloc().toLowerCase().contains(filter))
Restau.add(element);
}
} else {
Restau.addAll(tempRestList);
}
super.notifyDataSetChanged();
}
该自定义过滤器仅过滤一个元素。例如,我搜索“汉堡”它只会过滤一个元素。例如,我想过滤 2 个或更多单词 “Burger Samsung”我想过滤每个有“burger”和“samsung”的元素
Restau.add(element);
是我在CustomListView中过滤列表的代码
【问题讨论】:
-
如果您希望您的过滤器方法能够过滤多个单词,那么您可能应该将其更改为可以将多个字符串传递给该方法。
public void filter(String... filter) -
@911DidBush 你是什么意思传递多个字符串???
-
@Lemme 您希望您的过滤器方法能够过滤多个单词,但它只接受一个字符串作为参数。如果它接受多个字符串(即单词)会更有意义。这样您就不必在方法内拆分过滤器字符串。或者过滤器方法是一个被覆盖的方法,你不能改变签名?