我有这样的方法
Date date = new Date();
mAppDatabase.getWeatherDao().getAllDatabyCity(city)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.flatMap(new Function<List<Weather>, ObservableSource<Weather>>() {
@Override
public ObservableSource<Weather> apply(List<Weather> weathers) throws Exception {
return Observable.fromIterable(weathers);
}
})
.filter(new Predicate<Weather>() {
@Override
public boolean test(Weather weather) throws Exception {
Date date1 = new SimpleDateFormat("yyyy-MM-dd").parse(weather.getDate());
return date1.after(date);
}
})
.toList()
.subscribe(new SingleObserver<List<Weather>>() {
@Override
public void onSuccess(List<Weather> weathers) {
Log.i(Const.LOG, "weathers.size " + weathers.size()); ------------ nothing show
});
方法toList不发出任何东西。当我删除toList并写上这个
@Override
public void onNext(Weather weather) {
Log.i(Const.LOG, " " + weather.getName());
一切顺利,发出所有通过测试的元素 但我想接收包含元素的列表 我该如何解决?