我对Java / Android Studio还是很陌生,并且花了两天的时间弄清楚这一点,但没有成功。我不断得到:无法解析构造函数'JsonArrayRequest(int,java.lang.String,java.lang.String,匿名com.android.volley.Response.Listener)'
在其他线程上,我看到的答案建议将null替换为字符串或将null强制转换,但这似乎没有用。
例如,我尝试读取https://www.smartvibes.be/profiles/api/profileview.php?id=5073处的JSON数组。
这是我的代码:
$@
尝试运行它时,我得到:
$^
我可能在做某事(或几件事)不好……但是不知道是什么。
答案 0 :(得分:1)
您错过了Response.ErrorListener()
使用此
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(
Request.Method.GET,
url,
null,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
// Get current json Array
JSONArray profile = new JSONArray(response);
JSONObject jresponse = profile.getJSONObject(0);
Toast.makeText(profileViewActivity.this, "test", Toast.LENGTH_LONG).show();
nick = jresponse.getString("nick");
age = jresponse.getString("age");
city = jresponse.getString("city");
mainpic = jresponse.getString("mainpic");
numpics = jresponse.getString("numpics");
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error){
// Do something when error occurred
Snackbar.make(
mCLayout,
"Error...",
Snackbar.LENGTH_LONG
).show();
}
}
);
希望有帮助
答案 1 :(得分:0)
除ErrorListener
之外,您的代码中的所有内容似乎都很好。
如果检查JsonArrayRequest
的来源,您会注意到它采用了另一种方法作为处理 您没有的错误的最后一个参数。 。
只需在Response.ErrorListener()
方法之后添加onResponse()
就可以解决问题。
不过,您可以null
忽略错误,这是不推荐的。
看一下: https://android--examples.blogspot.com/2017/02/android-volley-json-array-request.html