首页 > 解决方案 > call.enqueue 不适用于同一类中的两个改造调用

问题描述

您好,我是 Android 新手。我正在尝试调用并保存来自同一类的两个 API,并将这些 API 中的两个数据放入相同RecyclerView的 . 第一次改造工作正常,但在第二次改造电话中出现问题。第二次改造的代码如下

private void callRetrofitListData(){
    pariyojanaInterfaces = ApiClient.getApiClient().create(PariyojanaInterface.class);
    Log.e("pariyojanaInterfaces", String.valueOf(pariyojanaInterfaces));
    Call<List<Data>> call = pariyojanaInterfaces.getData(memberId);
    Log.e("urll",call.request().toString())
    call.enqueue(new Callback<List<Data>>() {
        @Override
        public void onResponse(Call<List<Data>> call, Response<List<Data>> response) {

            Log.e("check","chekc");

            datas = (List<Data>) response.body();

            itemListAdapter = new ItemListAdapter(getApplicationContext(), datas);
            rv.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
            rv.setAdapter(itemListAdapter);
        }

        @Override
        public void onFailure(Call<List<Data>> call, Throwable t) {
            Log.e("error", t.getMessage());
        }
    });
}

在这种情况下,调试器不会进入这个函数

call.enqueue(new Callback<List<Data>>() 

并说没有这样的实例字段:'PariyojanaInterfaces'。

如下图PariyojanaInterface所示:

public interface PariyojanaInterface {
    @POST("projectBudget/pariyojanaListForMobile")
    Call<List<Data>> getData(@Query("memberId") int memberId);
}

有人可以帮我解决我的问题吗?

标签: androidretrofit2

解决方案


您必须在 @POST() 行之前的界面中添加 @FormUrlEncoded 和

在 POST 方法中,我们使用@FIELD而不是@QUERY


推荐阅读