错误:(54,91)错误:不兼容的类型:int无法转换为字符串

时间:2017-02-12 04:34:29

标签: android json string int

我尝试将我的应用与服务器连接但出错了。请帮忙!

我尝试使用排球库将我的应用程序连接到服务器,但每当我尝试运行我的代码时,我都会收到以下错误

  

不兼容的类型:int无法转换为String

我尝试从String更改为int,但它没有帮助!

show.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,          **<-------------error here**
                            showUrl, new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject response) {
                            try {
                                JSONArray student = response.getJSONArray("student");
                                for (int i=0;i<student.length();i++){
                                    JSONObject students = student.getJSONObject(i);

                                    String firstname = students.getString("firstname");
                                    String lastname = students.getString("lastname");
                                    String age = students.getString("age");

                                    result.append(firstname+""+lastname+""+age+""+"\n");
                                }
                                result.append("==\n");

                            } catch (JSONException e) {
                                e.printStackTrace();
                            }

                        }
                    }, new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {

                        }
                    });
                    requestQueue.add(jsonObjectRequest);
                }
            });
        }
    }

2 个答案:

答案 0 :(得分:1)

现在遇到了你的问题。

您使用JsonObjectRequestVolley的{​​{1}}方法不正确。

您正在调用此方法

JsonObjectRequest(String url, JSONObject jsonRequest, Listener<JSONObject> listener, ErrorListener errorListener)

而不是

JsonObjectRequest(int method, String url, JSONObject jsonRequest, Listener<JSONObject> listener, ErrorListener errorListener)

其中第一个参数是int

您传递了4个参数,因此调用了上方法,将int method转换为String url

你可以通过传递5个参数来修复它,然后一切都应该很好。

答案 1 :(得分:0)

requestQueue = Volley.newRequestQueue(this);

//关注这个

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, 
                        "url", null, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {

          
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    });

    requestQueue.add(jsonObjectRequest);