【发布时间】:2020-07-12 14:06:14
【问题描述】:
我想从我的 Retrofit 回调中获得一个 ArrayList<ItemList> 并将其保存为我班级中的 ArrayList 变量。
换句话说,即使我离开了onResponse 方法,我也需要使用来自retrofitList 的数据。
最好的方法是什么?
这是我的代码。
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
retrofitList = new ArrayList<>();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://b98afcf5.ngrok.io/")
.addConverterFactory(GsonConverterFactory.create())
.build();
jsonPlaceHolder = retrofit.create(JsonPlaceHolder.class);
Call<List<ItemList>> call = jsonPlaceHolder.getItemList();
call.enqueue(new Callback<List<ItemList>>() {
@Override
public void onResponse(Call<List<ItemList>> call, Response<List<ItemList>> response) {
if(!response.isSuccessful()) {
return;
}
List<ItemList> listOfitems = response.body();
for(ItemList itemList : listOfitems){
retrofitList.add(new ItemList(itemList.getId(),
itemList.getName(),
itemList.getPhone(),
itemList.getIsLocated()));
}
//I WANT TO SAVE "retrofitList" INTO MY CLASS FROM HERE
}
@Override
public void onFailure(Call<List<ItemList>> call, Throwable t) {}
});
}
【问题讨论】:
-
您想将其保存在变量中吗?它已经保存了!
-
嗨 Jamaldin,我想将列表保存到另一个变量中,以便在我的课堂上阅读它
-
是的,您有 retrofitList 并且它存储了您在 for 循环中添加的值
-
既然你已经在填充它,为什么不能通过retrofitList访问它?
-
因为一旦我离开 onResponse 我丢失了我的数据,我想存储它
标签: java android asynchronous callback retrofit