Android rxjava изменить список объектов внутри другого списка - PullRequest
0 голосов
/ 01 мая 2018

Я получаю ответ API и создаю List<Logs>. Этот список включает в себя еще один список List<Debits>. Что я хочу сделать, это получить каждый Debits объект и изменить его переменную типа, а затем вернуть измененный List<Logs>. У меня есть код ниже

val s = accountRepository.Logs
            .filter { result -> result.isSuccessful }
            .map { result -> result.result.creditLog }
            .flatMap { Logs -> Observable.from(Logs)
                    .map { Log ->
                        copyLog(Log, Observable.from(Log.debits)
                                .map { debit -> copyDebit(debit, "pc") }
                                .toList().toBlocking().single()) }
                    .toList()
            }
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe({ Logs ->

            },{RxErrorHandler()})

Мне удалось перебрать List<Logs>, а затем List<Debits>, попытался использовать .toList(), но не смог получить желаемый результат. У меня есть руководство или пример, как это сделать?

1 Ответ

0 голосов
/ 01 мая 2018

Учитывая, что вы используете RxJava вместе с Kotlin, почему бы не использовать его по максимуму?

Я удалю некоторые наблюдаемые, которые, я думаю, вам не нужны:

          val s = accountRepository.Logs
                        .filter { result -> result.isSuccessful }
                        .map { result -> 
                          result.result.creditLog.foreach{ 
                             log ->
                              log.debits.foreach{ debit -> debit.type = “pc” }
                          }
                        return result.creditLog  
                 }.subscribeOn(Schedulers.io())
                        .observeOn(AndroidSchedulers.mainThread())
                        .subscribe({ Logs ->

                        },{RxErrorHandler()})

Я не тестировал код, но я бы сказал, что вам нужны незначительные исправления / изменения

...