2016-11-22 26 views
0

我有2种数据类型(TvShows和MovieResponse),我想将它们合并到一个类型为Movie中,最后我将List与Recycler.ViewAdapter一起使用。如何将该方法更改为函数式编程?使用rxAndroid将常规方法转换为函数式编程

感谢)

private List<Movie> buildResponse(SearchResponse.Events events) { 
    List<Movie> result = new ArrayList<>(); 

    if (events.getMovies().size() > 0) { 
     // add title 
     result.add(new Movie(getString(R.string.section_movie), HEADER_TYPE)); 
     for (Movie movie : events.getMovies()) { 
     result.add(movie); 
     } 
    } 

    if (events.getTvshows().size() > 0) { 
     result.add(new Movie(getString(R.string.section_tvshows), HEADER_TYPE)); 
     for (Movie tv : events.getTvshows()) { 
     result.add(movie); 
     } 
    } 
    return result; 
    } 

-TvShow和MovieResponse延伸电影,这就是为什么我可以对他们进行迭代。 - 我使用Java7

回答

0

使用Observable.from()为TvShows和MovieResponse创建'movie'对象的源。然后使用Observable.zip(),所以你会得到tvShow和电影,在映射功能使他们单电影对。 当您获得最终的可观察源代码时,请使用Observable.defer(() - > source).toBlocking()获取合并影片的列表。 您还需要添加第一个电影(标题),这样做使用 Observable.concat(Observable.just(header),source)

+0

谢谢!你可以添加简短的例子吗? – Andro

相关问题