当我尝试在此代码之后访问类别数组时,它会给我空指针异常。 我将这个数组返回给其他类。所以它也产生nullpointerexception。
JsonObjectRequest req = new JsonObjectRequest(url, new JSONObject(),
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
// handle response
try {
JSONArray jarray=(JSONArray)response.get(item);
catagory=new String[jarray.length()][2];
//catagory_name=new String[jarray.length()];
for(int i=0;i<jarray.length();i++){
JSONObject jobj = (JSONObject) jarray
.get(i);
catagory[i][1]=jobj.getString(sectionurl);
catagory[i][0]=jobj.getString(name);
}
}
catch (JSONException je){
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// handle error
}
})
String str=catagory[0][0];//AT THIS LINE AN EXCEPTION IS THROWN
答案 0 :(得分:1)
正如塞尔文所说,你应该明白,线程是如何运作的。
在行String str=catagory[0][0];
中,catagory为null。
只有在public void onResponse(JSONObject response) {...}
之后它才会有价值,并导致它的同步操作。