【发布时间】:2017-03-04 10:47:02
【问题描述】:
我正在使用改造库为我的应用执行 API 调用。我为 API 编写了一个单独的函数,以便它可以重用。我得到的响应是对象 'Movies' 的列表。但我无法返回对象。我应该在这里做什么?
从 API 获取数据的函数
// These are the retrofit codes to get the data from TMDB API
private List<Movies> getDataFromServer(int page)
{
ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class);
Call<Response> call = apiService.getPopularMovies(API_KEY , page);
List<Movies> movies = new ArrayList<>();
call.enqueue(new Callback<Response>() {
@Override
public void onResponse(Call<Response> call, retrofit2.Response<Response> response) {
movies = response.body().getMovies();
}
@Override
public void onFailure(Call<Response> call, Throwable t) {
Log.e(TAG,t.toString());
movies = null;
}
});
return movies;
}
它说我应该将电影声明为 final,但是当我这样做时,它会自动将数组列表转换为数组,并将 onResponse 和 onFailure 中的电影转换为 moviess[0]。我只想获取电影,然后将其作为列表返回
【问题讨论】:
-
movieslistview 始终为空,因为您在onResponse上设置数据,这是回调方法。 -
创建一个接口并在你想要获取电影的地方实现它。
标签: java android arraylist retrofit retrofit2