JsonArrayRequest在Android Studio中不起作用:无法解析构造函数

时间:2018-10-10 15:12:11

标签: java android json

我对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数组。

这是我的代码:

$@

尝试运行它时,我得到:

$^

我可能在做某事(或几件事)不好……但是不知道是什么。

2 个答案:

答案 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