如何从 Retrofit onResponse 获取数据

How do I get a data from a Retrofit onResponse

我想从我的 Retrofit 回调中获取一个 ArrayList<ItemList> 并将其作为 ArrayList 变量保存在我的 class 中。 换句话说,即使我离开 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) {}
    });
}

我推荐连载它会让你的生活更轻松。尝试 and this。 在您的 class 中创建一个方法,您将使用列表从 onResponse 调用该方法。将列表保存在某个字段变量中。如果您在用来自 onResponse 的项目填充它之前调用此变量,它将不会有它们。