【问题标题】:Response.Listener Volley in Android (java)Android 中的 Response.Listener Volley (java)
【发布时间】:2021-02-05 00:10:43
【问题描述】:

我是编程初学者,我想请求 JSON 。我的 Response.Listener 有问题,它有红色下划线,而且 callVolley 也是红色的

这是脚本代码。有人会帮助我吗?谢谢

 StringRequest strReq = new StringRequest(Request.Method.POST, url, new Response.Listener() {

        @Override
        public void onResponse(JSONArray response) {
            Log.d(TAG, "Response: " + response.toString());

            try {
                JSONObject jObj = new JSONObject(response);
                success = jObj.getInt(TAG_SUCCESS);

                // Cek error node pada json
                if (success == 1) {
                    Log.d("Add/update", jObj.toString());

                    callVolley();

                    Toast.makeText(InputActivity.this, jObj.getString(TAG_MESSAGE), Toast.LENGTH_LONG).show();
                    adapter.notifyDataSetChanged();

                } else {
                    Toast.makeText(InputActivity.this, jObj.getString(TAG_MESSAGE), Toast.LENGTH_LONG).show();
                }
            } catch (JSONException e) {
                // JSON error
                e.printStackTrace();
            }

        }

【问题讨论】:

  • 在 Android Studio 中,red underline 通常意味着需要从某个地方import。您可以将光标放在它上面,它也会显示一些提示。
  • 请将鼠标悬停在红色下划线并尝试添加错误也是问题

标签: java android json android-volley


【解决方案1】:

您正在使用 StringRequest 进行请求,这意味着 onResponse(String response) 中的响应应该是一个字符串,而不是您使用的是 JSONArray。请在创建请求时正确检查。

代码应该如下所示,

    StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
            @SuppressLint("SetTextI18n")
            @Override
            public void onResponse(String response) {
 }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 2015-09-04
    • 1970-01-01
    • 2020-05-24
    • 2018-02-21
    • 2021-09-13
    • 2021-06-25
    相关资源
    最近更新 更多