首页 > 解决方案 > 改造队列多个 RecyclerViews

问题描述

我正在使用retrofit2 将多个recyclerview 排入队列。它在一个 recyclerview 上工作得很好,但是当我去排队第二个具有不同类别的它时它不起作用。

我已经尝试过第二种 onresponse 方法,我想不出任何其他方法

Call<MovieResponse> call = apiInterface.getTopRatedMovies(API_KEY);//This one is working!

Call<MovieResponse> call1 = apiInterface.getNowPlayingMovies(API_KEY); //This is what i what to implement

这是代码

Call<MovieResponse> call = apiInterface.getTopRatedMovies(API_KEY);

call.enqueue(new Callback<MovieResponse>() {
            @Override
            public void onResponse(Call<MovieResponse> call, Response<MovieResponse> response) {
                int statuscode =response.code();
                List<Movie> movies = response.body().getResults();

                recyclerView.setAdapter(new MoviesAdapter(movies, R.layout.movie_item, getContext()));

                recyclerView1.setAdapter(new MoviesAdapter(movies, R.layout.movie_item, getContext())); //this works but not with the NowPlayingMovies, tested to see if it was the other recyclerview

            }

            @Override
            public void onFailure(Call<MovieResponse> call, Throwable t) {
                //Toast.makeText(MainActivity.this, t.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });

标签: javaandroid

解决方案


如果您不喜欢使用 RxJava,那么您可以使用以下解决方案:

Call<MovieResponse> call = apiInterface.getTopRatedMovies(API_KEY);

call.enqueue(new Callback<MovieResponse>() {
            @Override
            public void onResponse(Call<MovieResponse> call, Response<MovieResponse> response) {
                int statuscode =response.code();
                List<Movie> movies = response.body().getResults();

                recyclerView.setAdapter(new MoviesAdapter(movies, R.layout.movie_item, getContext()));
                secondAPICall();
            }

            @Override
            public void onFailure(Call<MovieResponse> call, Throwable t) {
                //Toast.makeText(MainActivity.this, t.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });

public void secondAPICall(){
            call1.enqueue(new Callback<MovieResponse>() {
            @Override
            public void onResponse(Call<MovieResponse> call, Response<MovieResponse> response) {
                int statuscode =response.code();
                List<Movie> movies = response.body().getResults();

                recyclerView1.setAdapter(new MoviesAdapter(movies, R.layout.movie_item, getContext()));



            }

            @Override
            public void onFailure(Call<MovieResponse> call, Throwable t) {
                //Toast.makeText(MainActivity.this, t.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });
}



推荐阅读