如何在RxJava Android中将每个项目添加到List中

时间:2016-03-25 03:42:12

标签: java android lambda retrofit rx-java

我的代码如下。

var assert_equal = function(bin, dec) {
  if(bin.binaryToDecimal() == dec)
    return result = ("They are Equal!");
}

使用如下的辅助方法

Observable<List<Appointment>> callAppointments = appointmentServiceRx.appointmentService.getConfirmedAppointments(user_id);
    callAppointments
            .flatMapIterable(appointments -> appointments)
            .flatMap(app -> Observable.zip(
                    app,
                    patientServiceRx.patientService.getPatientById(app.patient_id),
                    servicesRestRx.servicesAPIServiceRx.getSubserviceById(app.subservice_id),
                    (appointment, patient, subservice) -> this.createListItem(appointment, patient, subservice)
            ))
            .toList()
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe();

当我试图在Observable.zip中调用createListItem时,我得到一个错误,说预期参数和实际参数不匹配

以下是错误消息。

Error message

请帮助.....

1 个答案:

答案 0 :(得分:0)

HKActivitySummary是一个红色鲱鱼,与您的问题无关。

您似乎使用了.filter('startDate', '>=', new Date(startDate)); 的血腥字段!你只有一个AppointmentListItem实例,这就是原因!

编辑:Timeline: Activity_idle是你的朋友!我就是这样做的:

appointment

这样做的另一个好处是可以并行进行两次预约。请记住,Observable::zip不一定保留原始排序,因此您可能会以与约会不同的顺序结束AppointmentListItem。