Android 如何将自定义pojo作为参数传递给rxjava2 Observable中的接口方法调用?

Android 如何将自定义pojo作为参数传递给rxjava2 Observable中的接口方法调用?,android,rx-java,retrofit2,rx-android,Android,Rx Java,Retrofit2,Rx Android,当前代码 Observable.from(listMovie)//list of movie .flatMap(new Func1<Movie, Observable<FavMovieRes>>() { @Override public Observable<FavMovieRes> call(Movie movie) { r

当前代码

    Observable.from(listMovie)//list of movie
            .flatMap(new Func1<Movie, Observable<FavMovieRes>>() {
                @Override
                public Observable<FavMovieRes> call(Movie movie) {
                    return moviesAPI.makeMovieFav(userId),
                    sessionId, new MakeMovieFav("movie", movie.getId(), movie.isFavList()));
                }
            })
            .subscribe(new Subscriber<FavMovieRes>() {
        @Override
        public void onCompleted() {

        }

        @Override
        public void onError(Throwable e) {

        }

        @Override
        public void onNext(FavMovieRes favMovieRes) {

        }
    });
Observable.from(listMovie)//电影列表
.flatMap(新函数1(){
@凌驾
公众可观测呼叫(电影){
返回moviesAPI.makeMovieFav(userId),
sessionId,新MakeMovieFav(“movie”,movie.getId(),movie.isFavList());
}
})
.subscribe(新订户(){
@凌驾
未完成的公共无效(){
}
@凌驾
公共无效申报人(可丢弃的e){
}
@凌驾
公共void onNext(FavMovieRes FavMovieRes){
}
});
在上面的代码中,我将电影对象列表传递给可观察对象,并在从API获得结果时对列表中的每个电影实例执行操作。我想更改有关该电影实例的一些数据库。如何在OnNext()中获取每个电影实例以及subscribe方法的onError方法。 我想要的是

Observable.from(listMovie)
                .flatMap(new Func1<Movie, Observable<FavMovieRes>>() {
                    @Override
                    public Observable<FavMovieRes> call(Movie movie) {
                        return moviesAPI.makeMovieFav(String.valueOf(SharedPreferenceDataManager.getUserId(SyncFavListPeriodicTask.this)), SharedPreferenceDataManager.getSessionId(SyncFavListPeriodicTask.this), new MakeMovieFav("movie", movie.getId(), movie.isFavList()));
                    }
                }).subscribe(new Subscriber<FavMovieRes>() {
            @Override
            public void onCompleted() {

            }

            @Override
            public void onError(Throwable e,Movie movie) {//or MakeMovieFav makeMovieFav

            }

            @Override
            public void onNext(FavMovieRes favMovieRes,Movie movie) {//or MakeMovieFav makeMovieFav

            }
        });
Observable.from(listMovie)
.flatMap(新函数1(){
@凌驾
公众可观测呼叫(电影){
返回moviesAPI.makeMovieFav(String.valueOf(SharedPreferenceDataManager.getUserId(SyncFavListPeriodicTask.this))、SharedPreferenceDataManager.getSessionId(SyncFavListPeriodicTask.this)、newmakemoviefav(“movie”、movie.getId()、movie.isFavList());
}
}).subscribe(新订户(){
@凌驾
未完成的公共无效(){
}
@凌驾
公共无效者(可丢弃的e、电影){//或MakeMovieFav MakeMovieFav
}
@凌驾
public void onNext(FavMovieRes FavMovieRes,Movie Movie){//或MakeMovieFav MakeMovieFav
}
});

我猜您有一个列表,希望为另一个异步操作处理每个收到的项目。对于这种情况,您可以平面映射每个结果

flatMapIterable
意味着它将拆分列表中的每个项目,以供流中的下一个操作观察
flatMap
表示它将对接收到的值执行操作

如果要将结果放回一起,可以在flatMap之后使用
toList

您需要为平面图创建一个可观察(操作)

Kotlin:

Observable.just(data)
        .flatMapIterable { it }
        .flatMap{ moviesAPI.makeMovieFavObservable(whatEver) }
        .subscribe( ... , ... , ... )
Java(未经测试)


我猜您有一个列表,希望为另一个异步操作处理每个收到的项。对于这种情况,您可以平面映射每个结果

flatMapIterable
意味着它将拆分列表中的每个项目,以供流中的下一个操作观察
flatMap
表示它将对接收到的值执行操作

如果要将结果放回一起,可以在flatMap之后使用
toList

您需要为平面图创建一个可观察(操作)

Kotlin:

Observable.just(data)
        .flatMapIterable { it }
        .flatMap{ moviesAPI.makeMovieFavObservable(whatEver) }
        .subscribe( ... , ... , ... )
Java(未经测试)


不,我已经实现了,我希望获得我处理的数据,而不是处理后的数据。在这种情况下,我希望在方法调用(Result Result)和调用(Throwable Throwable,Result Result)中获得每个结果对象不,我已经实现了。我希望获得我处理的数据,而不是处理后的数据。在这种情况下,我希望在方法调用(Result Result)和调用(Throwable Throwable,Result Result)中获得每个结果对象。