私はretrofitライブラリを使用して私のアプリケーションのAPI呼び出しを行っています。 APIのための別の関数を書いて、再利用できるようにしました。私が戻ってくる応答は、オブジェクト '映画'のリストです。しかし、私はオブジェクトを返すことができません。私はここで何をすべきですか?改造応答からオブジェクトのリストを返すことができません
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;
}
それは私が最終的として映画を宣言する必要がありますが、私が行うとき、それは自動的に配列に配列リストと内部の動画を変換することを言いますonResponseとonFailureはmoviess [0]に変わります。
もprivate List<Movies> getDataFromServer(int page)
{
ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class);
Call<Response> call = apiService.getPopularMovies(API_KEY , page);
call.enqueue(new Callback<Response>() {
@Override
public void onResponse(Call<Response> call, retrofit2.Response<Response> response) {
if (response.isSuccessful()) {
movies = response.body().getMovies(); }
else{
//show error
}
}
@Override
public void onFailure(Call<Response> call, Throwable t) {
Log.e(TAG,t.toString());
movies = null;
}
});
return movies;
}
がいることを確認することを忘れないでください:私はちょうど映画を取得し、リストとしてそれを返す
'movie' listviewは、コールバックメソッドである' onResponse'にデータを設定しているので、常に空です。 –
インターフェイスを作成し、ムービーを取得する場所に実装します。 –