Я пытаюсь отфильтровать список после получения входных данных от edittext, на самом деле это фильтрация списка, но я хочу сгруппировать результат в список.
Так что я использовал для перечисления оператора с SingleObserver, но результат не приходит;почему это?
RxTextView.textChangeEvents(searchEdit)
.skip(1)
.debounce(400, TimeUnit.MILLISECONDS)
.switchMap(new Function<TextViewTextChangeEvent, Observable<List<VehicleMakeModel>>>() {
@Override
public Observable<List<VehicleMakeModel>> apply(TextViewTextChangeEvent textViewTextChangeEvent) throws Exception {
return Observable.just(variantlist);
}
})
.flatMapIterable(new Function<List<VehicleMakeModel>, List<VehicleMakeModel>>() {
@Override
public List<VehicleMakeModel> apply(List<VehicleMakeModel> v) {
return v;
}
})
.filter(new Predicate<VehicleMakeModel>() {
@Override
public boolean test(VehicleMakeModel v) {
if (searchEdit.getText().toString().isEmpty())
return true;
else
return v.getVariant().toLowerCase().trim().contains(searchEdit.getText().toString().toLowerCase().trim());
}
})
.map(new Function<VehicleMakeModel, VehicleMakeModel>() {
@Override
public VehicleMakeModel apply(VehicleMakeModel integer) throws Exception {
return integer;
}
})
.toList()
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SingleObserver<List<VehicleMakeModel>>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onSuccess(List<VehicleMakeModel> vehicleMakeModels) {
System.out.println("testing");
}
@Override
public void onError(Throwable e) {
}
});