我正在使用 Retrofit HTTP 中间层进行 API 调用。由于 Retrofit 异步工作,我使用一个接口返回 API 响应。但声明的接口在Retrofit 的 OnResponse()覆盖方法中显示为 NULL 。下面是代码块,界面public interface OnResponseListener{        void getCountryListResponse(ArrayList<String> list,int responseCode);    }响应            @Override            public void onResponse(Call<List<Country>> call, Response<List<Country>> response) {                Log.d("Response",response.body().toString());                for (Country country: response.body())                {                    Log.d("Country",country.toString());                    Log.d("CommomName",country.getCommonName());                   // Log.d("BLLL",country.getCommonName());                   countryList.add(country.getCommonName());                }                Log.d("Entered","Vikas Entered");              //  Log.d("ResonseListener",mResponseListener.toString());//Here throwing error, mResponseListener is null object                mResponseListener.getCountryListResponse(countryList,response.code());            }接口声明private  OnResponseListener mResponseListener;我不知道为什么它是 NULL,即使在声明了 Object(Interface) 之后。任何帮助将不胜感激。
                    
                    
                2 回答
                            米琪卡哇伊
                            
                                
                            
                        
                        
                                                
                    TA贡献1998条经验 获得超6个赞
您必须在其中设置值,并从调用它的位置实现它:
创建一个方法:
public void setResponseListener(OnResponseListener mResponseListener){
this.mResponseListener = mResponseListener;
}
并从您调用此 call.enqueue() 方法的位置调用它,如以下注册:
RestClientClassObject.setResponseListener(new OnResponseListener() {
@Override
void getCountryListResponse(ArrayList<String> list, int responseCode) {
//write code you want to do with list
}
});
添加回答
举报
0/150
	提交
		取消
	