1

刚刚使用以下代码实现了新的 Container.Filter:

Filter f  = 
new Or(new SimpleStringFilter(Columns.SEARCH.id(), "rpm-diastolic", true, false),  
new Or(new SimpleStringFilter(Columns.SEARCH.id(), "rpm-systolic", true, false)),
new Or(new SimpleStringFilter(Columns.SEARCH.id(), "rpm-weight", true, false))) ;
container.addContainerFilter(f);

并且工作正常。

现在我想使用以下内容通过动态构建过滤器来构建我需要的尽可能多的标准:

List<String> filters;
for(String filter : filters) {
    Filter f  = new Or(new SimpleStringFilter(Columns.SEARCH.id(), filter, true, false) );
    container.addContainerFilter(f);
}

我该怎么做才能使此代码不起作用...

4

1 回答 1

1

好的,

我可以通过简单地将数组传递给 Or 构造函数来做到这一点:

Filter[] filtersToAdd = new Filter[filters.size()];
for(String filterString : filters) {
filtersToAdd[i++] = 
    new Or(new SimpleStringFilter(Columns.SEARCH.id(), filterString, true, false));
}
Filter f = new Or(filtersToAdd);
container.addContainerFilter(f);
于 2012-07-17T20:43:57.160 回答