【问题标题】:error: no suitable constructor found for JsonArrayRequest错误:没有为 JsonArrayRequest 找到合适的构造函数
【发布时间】:2020-02-27 03:31:05
【问题描述】:

我是一名编程学生,正在构建一个使用 api json url 的 Android 应用程序,但没有找到适合 JsonArrayRequest 的构造函数

这是错误:

C:\Users\jerma\AndroidStudioProjects\VolleyParsing\app\src\main\java\com\jermainebjonesgmail\volleyparsing\MainActivity.java:37: 错误:找不到合适的构造函数 JsonArrayRequest(int,String,>,) JsonArrayRequest arrayRequest = new JsonArrayRequest(Method.GET, ^ 构造函数 JsonArrayRequest.JsonArrayRequest(String,Listener,ErrorListener) 不适用 (实际参数列表和形式参数列表的长度不同) 构造函数 JsonArrayRequest.JsonArrayRequest(int,String,JSONArray,Listener,ErrorListener) 不适用

这是我的代码:

public class MainActivity extends AppCompatActivity {

private final static String URL = "https://age-of-empires-2-api.herokuapp.com/api/v1/units";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    RequestQueue queue = Volley.newRequestQueue(this);

    JsonArrayRequest arrayRequest = new JsonArrayRequest(Method.GET,
            URL, new Response.Listener<JSONArray>() {

        @Override
        public void onResponse(JSONArray response) {

            Log.d("Response: ", response.toString());

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

            VolleyLog.d("Error", error.getMessage());
        }
    });

    queue.add(arrayRequest);


  }
}

【问题讨论】:

    标签: java android arrays json api


    【解决方案1】:

    您以错误的方式创建 JsonArrayRequest。构造函数见java docs

    构造函数总结

    JsonArrayRequest(String url, Response.Listener<JSONArray> listener, Response.ErrorListener errorListener)
          Creates a new request.
    

    JsonArrayRequest 可以如下创建:

    Request request = new JsonArrayRequest(httpMethod, url, params, new Response.Listener<JSONArray>() {
            @Override
            public void onResponse(JSONArray response) {
                serverCallback.onAPIResponse(apiTag, response);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                serverCallback.onErrorResponse(apiTag, error);
            }
        }) {
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                return headers != null ? headers : super.getHeaders();
            }
        };
    

    请找到示例代码here

    【讨论】:

      猜你喜欢
      • 2016-03-02
      • 2015-11-14
      • 1970-01-01
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-16
      相关资源
      最近更新 更多