You cannot return, you must “call back”.
Extract this inner callback class to the parameter.
public void getData(Callback<DataResponse> callback){
apiClient.getData().enqueue(callback);
}
In your other code
Callback<DataResponse> responseCallback = new Callback<DataResponse>() {
@Override
public void onResponse(Call<DataResponse> call, Response<DataResponse> response) {
List<Feature> features = response.body().getFeatures();
Log.d(TAG, "Data successfully downloaded");
for (Feature f: features) {
Log.d("feature", String.valueOf(f));
}
}
@Override
public void onFailure(Call<DataResponse> call, Throwable t) {
Log.e(TAG, t.toString());
}
};
service.getData(responseCallback);
You can also do service.getData(new Callback<DataResponse>() { ... });
source
share