在rxjava android中是否可以在订阅服务器的onNext()中获取2个值?

在rxjava android中是否可以在订阅服务器的onNext()中获取2个值?,android,rx-java,Android,Rx Java,我有一个可以观察到的 Observable.zip(observable, extObs, new Func2<List<UserProfile>, ArrayList<Extension>, UserProfile>() { @Override public UserProfile call(List<UserProfile> userProfiles, ArrayList<Extension> ext

我有一个可以观察到的

Observable.zip(observable, extObs, new Func2<List<UserProfile>, ArrayList<Extension>, UserProfile>() {
        @Override
        public UserProfile call(List<UserProfile> userProfiles, ArrayList<Extension> extensions) {


            return userProfiles.get(0);
        }
    }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).unsubscribeOn(Schedulers.io()).subscribe(new Subscriber<UserProfile>() {
        @Override
        public void onCompleted() {

        }

        @Override
        public void onError(Throwable e) {
            e.printStackTrace();
        }

        @Override
        public void onNext(UserProfile userProfile) {
            profileListener.onProfileSet(userProfile);
        }
    });
}
Observable.zip(Observable,extrobs,new Func2(){
@凌驾
公共用户配置文件调用(列出用户配置文件、ArrayList扩展){
返回userProfiles.get(0);
}
}).subscribeeon(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).unsubscribeen(Schedulers.io()).subscribe(new Subscriber()){
@凌驾
未完成的公共无效(){
}
@凌驾
公共无效申报人(可丢弃的e){
e、 printStackTrace();
}
@凌驾
public void onNext(UserProfile UserProfile){
onProfileSet(userProfile);
}
});
}
我需要在方法
profileListener.onProfileSet(userProfile)中传递ArrayList
as
profileListener.onProfileSet(userProfile,扩展名)


是否可以在zip中执行此操作,或者是否有其他rxjava方法可以解决此类问题?

您必须完全按照评论中的建议执行

例如:

  • 创建一个类,该类将表示观察结果的组合结果:

  • 如果不能这样做,那么可以创建一个新的对象类来保存概要文件和扩展
    class CombinedResults {
        public UserProfile userProfile;
        public List<Extension> extensions;
    
        public CombinedResults(UserProfile userProfile, List<Extension> extensions) {
            this.userProfile = userProfile;
            this.extensions = extensions;
        }
    }
    
    Observable.zip(observable, extObs,
            new Func2<List<UserProfile>, ArrayList<Extension>, CombinedResults>() {
                @Override
                public CombinedResults call(List<UserProfile> userProfiles, ArrayList<Extension> extensions) {
                    return new CombinedResults(userProfiles.get(0), extensions);
                }
            })
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .unsubscribeOn(Schedulers.io())
            .subscribe(new Subscriber<CombinedResults>() {
                @Override
                public void onCompleted() {
    
                }
    
                @Override
                public void onError(Throwable e) {
                    e.printStackTrace();
                }
    
                @Override
                public void onNext(CombinedResults combined) {
                    profileListener.onProfileSet(combined.userProfile, combined.extensions);
                }
            });