【发布时间】:2017-05-18 08:33:41
【问题描述】:
我想获取改造响应列表并在 OnResponse 函数之外使用它,但我尝试这样做时总是得到一个空对象。 这是我的源代码
ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class);
Call<ActivitiesResponse> call = apiService.getUserActivities(id);
call.enqueue(new Callback<ActivitiesResponse>() {
// If success
@Override
public void onResponse(Call<ActivitiesResponse>call, Response<ActivitiesResponse> response) {
list = response.body().getActivities();// I'm getting a not null response
}
// If failed
@Override
public void onFailure(Call<ActivitiesResponse>call, Throwable t) {
// Log error here since request failed
Log.e(TAG, t.toString());
}
});
//When I try to use the list here I'm getting a null object
【问题讨论】:
-
在 onResponse 中做你想做的事,否则你每次都会得到
NullPointException,因为Callback是Asynchrone,所以当请求结束时会调用onResponse。 -
在
onResponse中存储数据后尝试检查列表的大小我认为数据没有存储在列表中。 -
@RaphaelTeyssandier 所以我知道我的结果不可能在 OnResponse 函数之外得到??
-
您可能在改造 onResponse() 调用执行之前访问“列表”。尝试使用观察者。这样您就可以随时随地通知它。
-
@Anmol 列表的大小不为空,我已经检查了列表的内容并且它包含数据