【问题标题】:Json Array data not getting into the ArrayListJson Array 数据未进入 ArrayList
【发布时间】:2017-03-24 11:39:46
【问题描述】:

我使用 Volley 从 JSON Array 收到响应。我得到了我需要的字符串。 我想将这些字符串放在 ArrayList 中,以便将数据放在 recyclerview 适配器中。但是,这并没有发生。

这是 Json 请求:

    mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    mRecyclerView.setAdapter(mRecyclerViewAdapter);

    RequestQueue queue = VolleySingleton.getInstance(this).getRequestQueue();
    String url ="http://www.drunkenwords.in/web.php";

    JsonObjectRequest req = new JsonObjectRequest(Request.Method.GET, url, null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    JSONArray jsonArray;
                    ArrayList<Model> resp = new ArrayList<>();
                    try {
                        jsonArray = response.getJSONArray("info");
                        String x= response.getString("status");
                        Toast.makeText(MainActivity.this,x,Toast.LENGTH_LONG).show();
                        for(int i=0; i<jsonArray.length(); i++){


                            resp.add(new Model(jsonArray.getString(i)));
                            Toast.makeText(MainActivity.this,resp.get(i).getTitle(),Toast.LENGTH_LONG).show();

                        }
                        mRecyclerViewAdapter.setItems(resp);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d("y", "Error: " + error.getMessage());
        }
    });

    queue.add(req);

    mRecyclerViewAdapter.setItems(ar);

    mRecyclerViewAdapter.notifyDataSetChanged();

请帮忙!

【问题讨论】:

    标签: java android json arraylist android-volley


    【解决方案1】:

    试试这个

    try {
                    JSONObject jsonObject = new JSONObject(response);
                    JSONArray jsonArray = jsonObject.getJSONArray("info");
                    for(int i = 0; i < jsonArray.length(); i++)
                    {
                        JSONObject jobj = jsonArray.getJSONObject(i);
                        String x= jobj.getString("status");
                        Toast.makeText(MainActivity.this,x,Toast.LENGTH_LONG).show();
                        resp.add(new Model(jsonArray.getString(i)));
                        Toast.makeText(MainActivity.this,resp.get(i).getTitle(),Toast.LENGTH_LONG).show();
    
                    }
                } catch (JSONException e) {
                    Log.e("exception", "Error parsing data " + e.toString());                   
                }
    

    希望对你有所帮助。

    【讨论】:

      【解决方案2】:
      Try This
      
      mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
      mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
      mRecyclerView.setAdapter(mRecyclerViewAdapter);
      
      RequestQueue queue = VolleySingleton.getInstance(this).getRequestQueue();
      String url ="http://www.drunkenwords.in/web.php";
      
      JsonObjectRequest req = new JsonObjectRequest(Request.Method.GET, url, null,
              new Response.Listener<JSONObject>() {
                  @Override
                  public void onResponse(JSONObject response) {
                      JSONArray jsonArray;
                      ArrayList<Model> resp = new ArrayList<>();
                      try {
                          jsonArray = response.getJSONArray("info");
                          String x= response.getString("status");
                          Toast.makeText(MainActivity.this,x,Toast.LENGTH_LONG).show();
                          for(int i=0; i<jsonArray.length(); i++){
      
      
                              resp.add(new Model(jsonArray.getString(i)));
                              Toast.makeText(MainActivity.this,resp.get(i).getTitle(),Toast.LENGTH_LONG).show();
      
                          }
                          mRecyclerViewAdapter.setItems(resp);
                      } catch (JSONException e) {
                          e.printStackTrace();
                      }
                  }
              }, new Response.ErrorListener() {
          @Override
          public void onErrorResponse(VolleyError error) {
              Log.d("y", "Error: " + error.getMessage());
          }
      });
      
      queue.add(req);
      
      mRecyclerViewAdapter.notifyDataSetChanged();
      
      mRecyclerViewAdapter.setItems(ar);
      

      【讨论】:

        【解决方案3】:
        mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
            mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        
        
            RequestQueue queue = VolleySingleton.getInstance(this).getRequestQueue();
            String url ="http://www.drunkenwords.in/web.php";
        
            JsonObjectRequest req = new JsonObjectRequest(Request.Method.GET, url, null,
                    new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject response) {
                            JSONArray jsonArray;
                            ArrayList<Model> resp = new ArrayList<>();
                            try {
                                jsonArray = response.getJSONArray("info");
                                String x= response.getString("status");
                                Toast.makeText(MainActivity.this,x,Toast.LENGTH_LONG).show();
                                for(int i=0; i<jsonArray.length(); i++){
        
        
                                    resp.add(new Model(jsonArray.getString(i)));
                                    Toast.makeText(MainActivity.this,resp.get(i).getTitle(),Toast.LENGTH_LONG).show();
        
                                }
        
                                mRecyclerViewAdapter.setItems(resp);
                                mRecyclerView.setAdapter(mRecyclerViewAdapter);
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.d("y", "Error: " + error.getMessage());
                }
            });
        
            queue.add(req);
        
            mRecyclerViewAdapter.setItems(ar);
        
            mRecyclerViewAdapter.notifyDataSetChanged();
        

        【讨论】:

          猜你喜欢
          • 2016-04-07
          • 2021-11-11
          • 2014-11-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多