2016-06-30 12 views
5

Chcę filtrować List<Object> podstawie zapytania z użytkownikiem, a następnie powrócić do niego List<Object>/her.I okazało się, jak filtrować elementy Ale problem jest nie wiem jak powrócić List<Object>. Widzę też pewne podejście, które za każdym razem jest powtarzane i wywoływane flatMap Ale nie sądziłem, że jest to elegancki sposób.lista filtrów obiektu w Rxjava

To moja ostatnia próba:

 Observable.from(my_list_of_object) 
        .debounce(500, TimeUnit.MILLISECONDS) 
        .filter(new Func1<MyObject, Boolean>() { 
         @Override 
         public Boolean call(MyObject o) { 
          return o.getName().contains(query); //filtering 
         } 
        }) 
        .observeOn(Schedulers.computation()) 

        //problem is here and I dont know how 
        //to convert filtered Item to list 

Odpowiedz

13

Wystarczy użyć toList() operatora. Sprawdź documentation.

 Observable.from(my_list_of_object) 
        .debounce(500, TimeUnit.MILLISECONDS) 
        .filter(new Func1<MyObject, Boolean>() { 
         @Override 
         public Boolean call(MyObject o) { 
          return o.getName().contains(query); //filtering 
         } 
        }) 
        .toList() 
        .observeOn(Schedulers.computation()) 

Można znaleźć bardziej obszerną listę operatorów kruszywa .