/ / Używanie RxJava do pobierania obiektu, transformowanie listy zawierającej i używanie listy - android, rx-java, rx-android

Używając RxJava do pobrania obiektu, przekształć listę zawierającą i użyj listy - android, rx-java, rx-android

Problem wysokiego poziomu, który próbuję rozwiązać, przekształca listę Foo przedmioty zawarte w pobranym FooContainer (Observable) do listy FooBar obiekty używające RxJava.

Moja (zdezorientowana) próba:

fooContainerObservable
.map(container -> container.getFooList())
.flatMap(foo -> transformFooToFooBar(foo))
.collect( /* What do I do here? Is collect the correct thing? Should I be using lift? */)
.subscribe(fooBarList -> /* Display the list */);

Moje zamieszanie (lub przynajmniej jeden punkt tego) jest krokiem, przenoszącym spłaszczoną listę z powrotem na listę.

Uwaga: próbuję to zrobić w aplikacji na Androida.

Odpowiedzi:

17 dla odpowiedzi nr 1

toList może zbierać wszystkie elementy Obserwowalnego w List i emituj to. toList można zaimplementować za pomocą collect, ale to znacznie łatwiejsze niż collect. Dla Twojego przykładu będzie to:

fooContainerObservable
.map(container -> container.getFooList())
.flatMap(foo -> transformFooToFooBar(foo))
.toList()
.subscribe(fooBarList -> /* Display the list */);