I am getting movie data from the internet like its name, poster etc, but for the genres of the movie, I need to fetch it again from the net. So here's my solution for this problem.

```
public class MoviesViewAllAdapter extends RecyclerView.Adapter<MoviesViewAllAdapter.MoviesViewHolder> {

private Context mContext;
private List<MovieBrief> mMovies;

public MoviesViewAllAdapter(Context context, List<MovieBrief> movies) {
    mContext = context;
    mMovies = movies;
}

@Override
public MoviesViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    return new MoviesViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_movie_large,parent,false));
}

@Override
public void onBindViewHolder(MoviesViewHolder holder, int position) {

    holder.movieGenreTextView.setText("");
    setGenres(holder, mMovies.get(position).getId());

}

@Override
public int getItemCount() {
    return mMovies.size();
}

public class MoviesViewHolder extends RecyclerView.ViewHolder {

    public TextView movieGenreTextView;

    public MoviesViewHolder(View itemView) {
        super(itemView);
        movieGenreTextView = (TextView) itemView.findViewById(R.id.text_view_genre_movie_card);
    }
}

private void setGenres(final MoviesViewHolder holder, Integer movieId) {
    ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class);
    Call<Movie> call = apiService.getMovieDetails(movieId,mContext.getResources().getString(R.string.MOVIE_DB_API_KEY));
    call.enqueue(new Callback<Movie>() {
        @Override
        public void onResponse(Call<Movie> call, Response<Movie> response) {
            if(response.code() != 200) return;
            List<Genre> genresList = response.body().getGenres();
            String genres = "";
            for (int i=0;i<genresList.size();i++) {
                if(i == genresList.size()-1) {
                    genres = genres.concat(genresList.get(i).getGenreName());
                }
                else {
                    genres = genres.concat(genresList.get(i).getGenreName()+", ");
                }
            }
            holder.movieGenreTextView.setText(genres);
        }

        @Override
        public void onFailure(Call<Movie> call, Throwable t) {

        }
    });
}

}

```

But here problem is that when performing fling and going up the recyclerview the genres which are showing is not related to the movie, the genres which are loading are random.
May be because I am loading data on onBindViewHolder and when holder disappears from screen it loads into random holder. Is it so ?