Android RxJava中连续的多个api调用,改装顺序混乱

Android RxJava中连续的多个api调用,改装顺序混乱,android,retrofit,rx-java,Android,Retrofit,Rx Java,我有一个数据列表,其中再次包含2个字符串URL,它应该再次放置2个api调用来获取结果,并将这些数据添加到主列表中,然后显示在listview中 在这里,我能够获得具有正确数据的列表,但顺序不匹配。就像第一个完成的结果被添加到我的ArrayList或者其他什么东西。请帮忙 下面是我的代码: void handleOrdersResponse(@NonNull List<OrderRowViewModel> response) { for (int i = 0; i <

我有一个数据列表,其中再次包含2个字符串URL,它应该再次放置2个api调用来获取结果,并将这些数据添加到主列表中,然后显示在listview中

在这里,我能够获得具有正确数据的列表,但顺序不匹配。就像第一个完成的结果被添加到我的ArrayList或者其他什么东西。请帮忙

下面是我的代码:

void handleOrdersResponse(@NonNull List<OrderRowViewModel> response) {
    for (int i = 0; i < response.size(); i++) {
        String fulfillmentUrl = response.get(i).mFulFillmentMethodUrl.get();
        String paymentUrl = response.get(i).mPaymentMethodUrl.get();
        OrderRowViewModel response1 = response.get(i);
        subscribe(Observable.zip(getFulFillment(fulfillmentUrl), getPayment(paymentUrl), Pair::new)
                .compose(ObservableTransformers.getInstance().networkOperation())
                .doOnSubscribe(() -> {

                })

                .subscribe(pair -> {
                            response1.setOrderFulFilemntname(pair.first.state(), pair.first.state());
                            response1.setPaymnetType(response1.mPaymentTitle.get(), pair.second.methodData().methodName());
                            mModels.add(response1);

                            mFilteredConversations.add(response1);

                            if (mFilteredConversations.size() == response.size() && mModels.size() == response.size()) {
                                mAdapter.refresh();
                            }
                        },
                        throwable -> mEventBus.post(new BaseActivity.ShowSnackbarEvent(R.string.failure_updating_store))));
    }
}
void handleOrdersResponse(@NonNull List response){
对于(int i=0;i{
})
.订阅(配对->{
response1.setOrderFulfillmentName(pair.first.state(),pair.first.state());
response1.setPaymentType(response1.mPaymentTitle.get(),pair.second.methodData().methodName());
mModels.add(response1);
mFilteredConversations.add(response1);
if(mFilteredConversations.size()==response.size()&&mModels.size()==response.size()){
mAdapter.refresh();
}
},
throwable->mEventBus.post(newbaseActivity.ShowSnackbarEvent(R.string.failure\u update\u store));
}
}

如果要按顺序调用API,则应使用FlatMap什么是subscribe调用/方法?这可能有帮助: