2014-12-08 15 views
9

Çözmeyi denediğim yüksek düzey sorun, FooContainer (Gözlenebilir) öğesinde bulunan Foo nesnelerinin bir listesini FooBar nesnelerinin listesine dönüştürmektir. RxJava.Nesneyi getirmek için RxJava'yı kullanma, içeren bir listeyi dönüştürme ve listeyi kullanma

Benim (karışık) girişimi:

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 */); 

Benim karışıklık (ya da en azından bir nokta) geri listeye düzleştirilmiş liste hareketli adımdır.

Not: Bunu bir Android uygulamasında yapmaya çalışıyorum.

+0

Neden "topla" yı kullanmayı planlıyorsunuz? Bir listeye tüm öğeleri toplamak istiyorsanız, 'toList' öğesini aramanız yeterlidir. – zsxwing

+0

@zsxwing, çünkü olayların akışından çok sayıda öğeyi "topladığım" anlamını taşıyordu :). "List" in varlığının farkında değildim. Bunu öneren cevaplarsanız, çözüm olarak işaretlerim! – loeschg

cevap

17

toList Gözlemlenebilir öğelerin tümünü List içine alabilir ve yayabilir. collect kullanılarak toList uygulanabilir, ancak collect'dan çok daha kolaydır. Örneğiniz için: