java - 改造队列多个 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();
}
});
解决方案
如果您不喜欢使用 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();
}
});
}
推荐阅读
- python - 如何将列表中的元组列表转换为一维数组?
- c - 动态数组重新分配
- python - response.xpath().extract_first() 方法的问题
- java - How do I get the character before a specific character with regex?
- haskell - LiquidHaskell 在“Data.String”类型上运行良好但在“Data.Text”类型上运行良好的简单案例
- lotus-notes - Lotus Sametime Embedded - 窗口格式
- python - 将部分函数调用保存在 json 文件中
- python - 我是在 dataset.repeat() dataset.batch() 和 dataset.prefetch() 之前还是之后缓存数据集?
- java - 保存无线电组 onSavedInstance
- django - /course/expression-regular-django/ 'ContactCourses' 对象的 AttributeError 没有属性 'name'