2つのネットワーク要求、N1とN2を作成しています。これらは互いに依存しない2つの別々の要求です。RxJava、2つの観測値を結合して2番目の観測値を出力する
N1
Observable<GenresListResponse> genresListResponseObservable =
tmdbInterface.getGenresList(BuildConfig.API_KEY);
N2
Observable<NowPlayingMoviesListResponse> nowPlayingMoviesListResponseObservable =
tmdbInterface.getNowPlayingMovies(BuildConfig.API_KEY);
私は両方の応答を取得したら、私は今のジャンルリストから動画を再生する各ジャンルを見つけるとするジャンルを設定する必要があります今再生しているムービーリストの各項目。最後に、Observable NowPlayingMoviesListResponseを発行します。ここには、Stringとしてのジャンルが含まれています。
NowPlayingMoviesList POJOクラスには、genresListから推測された後にジャンルを設定するために使用できるsetGenre(String genre)が含まれています。
わかりやすくするために、これはサーバーからのJSON値です。
genre.json
{
"genres": [
{
"id": 28,
"name": "Action"
},
{
"id": 12,
"name": "Adventure"
}
]
}
now_playing_movie.json
{
"results": [
{
"vote_count": 3290,
"id": 346364,
"original_language": "en",
"original_title": "It",
"genre_ids": [
18,
27,
53
]
}
]
}
は今、映画のモデルクラスでは、私がの応答でIDを比較した後のジャンルを設定しsetGenres(文字列のジャンルを)持っていますジャンルリクエスト。
あなたが探しているのはジップオペレータです。実装について見てみましょう:https://github.com/Fakher-Hakim/Rx-Android-Samples/blob/master/app/src/main/java/com/fakher/rx/ui/fragments/ZipOperatorFragment.java – Fakher
私のユースケースをZipで解決しました。私の答えは、@ charlag_khanです。 –