Java JSONArray需要更高的API级别,但在同一类中使用时没有问题
这是一个反复出现的问题,我一直在安卓工作室。我将使用JSONArray类,它将告诉我“调用需要API级别19(当前最小值为15)”。奇怪的是,我能够在同一个类的其他位置使用JSONArray 我尝试过的一些事情包括清理和构建项目(什么都不做),重新启动Android Studio(对这个问题也什么都不做),重写使用JSONArray的方法,或者移动它(这有时会起作用) 这是一个我不明白的例子Java JSONArray需要更高的API级别,但在同一类中使用时没有问题,java,android,json,Java,Android,Json,这是一个反复出现的问题,我一直在安卓工作室。我将使用JSONArray类,它将告诉我“调用需要API级别19(当前最小值为15)”。奇怪的是,我能够在同一个类的其他位置使用JSONArray 我尝试过的一些事情包括清理和构建项目(什么都不做),重新启动Android Studio(对这个问题也什么都不做),重写使用JSONArray的方法,或者移动它(这有时会起作用) 这是一个我不明白的例子 私有void makeApiCall(字符串文本){ make(上下文、文本、新响应.Listener
私有void makeApiCall(字符串文本){
make(上下文、文本、新响应.Listener()){
@凌驾
公共void onResponse(字符串响应){
List employees=new ArrayList();
试一试{
JSONArray数组=新的JSONArray(响应);
employees=new APIHelper().populateEmployeetList(数组);
}捕获(例外e){
e、 printStackTrace();
}
autoAdapter.setData(员工);
autoAdapter.notifyDataSetChanged();
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
});
}
这里有一个例子,我得到了错误
private void getJobs(字符串文本){
getJobsByPartial(上下文、文本、新响应.Listener()){
@凌驾
公共响应(对象响应){
试一试{
列表函数=新的ArrayList();
JSONArray作业=新的JSONArray(响应);
函数=新的APIHelper().populateFunctionList(作业);
jobAdapter.setData(函数);
jobAdapter.notifyDataSetChanged();
}
捕获(JSONException ex){
例如printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
});
}
在您的第一个代码片段中,响应
是一个字符串
。采用字符串的JSONArray
构造函数从API级别1开始就存在了
在第二个代码段中,响应
是一个对象
。接受对象的JSONArray
构造函数仅在API级别19之后出现
在第二个代码段中,APICall.getJobsByPartial()
应该为回调提供比对象更具体的内容