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 に答える