【问题标题】:I am trying to display data in RecyclerView but data is not showing我正在尝试在 RecyclerView 中显示数据,但未显示数据
【发布时间】:2018-08-08 15:10:57
【问题描述】:

我正在尝试在 RecyclerView 中显示数据,但数据未显示并且错误是

02-28 18:45:49.424 8426-8426/com.bbcoin.saksham.bbcoin W/System.err:at org.json.JSONArray.get(JSONArray.java:293)
    02-28 18:45:49.424 8426-8426/com.bbcoin.saksham.bbcoin W/System.err:at org.json.JSONArray.getJSONObject(JSONArray.java:521)

我的代码如下..

StringRequest stringRequest = new StringRequest( Request.Method.POST, json_url,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                  //  Toast.makeText( Trans_List.this,response.length(),Toast.LENGTH_SHORT ).show();
                    int count = 0;
                   while (count<response.length()){
                        try {
                            JSONArray jsonArray = new JSONArray (response);
                            JSONObject jsonObject = jsonArray.getJSONObject( count );
                            Contact contact  = new Contact(
                                    jsonObject.getString( "transfer_by_wallet" ),
                                    jsonObject.getString( "dr" ),
                                    jsonObject.getString( "cr" ));
                            arrayList.add( contact );
                            count++;
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                    adapter = new RecyclerAdapter( arrayList );
                    Log.d("arraylist size",""+arrayList.size());
                    recyclerView.setAdapter( adapter );
                }

            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText( Trans_List.this,"Check network connection...",Toast.LENGTH_SHORT ).show();
        }
    } )
    {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            User user = new User( Trans_List.this );
            String email = user.getEmail();
            Map<String, String > params = new HashMap<>(   );
            params.put( "email", email );
            return params;
        }
    };
    MySingleton.getInstance( Trans_List.this ).addTorequestque( stringRequest );

数据响应显示在 android profiler 中,但不显示在 RecyclerView 中。我需要帮助来解决这个错误,

【问题讨论】:

  • 您的解析代码有错误,请发布您在String response参数中得到的Json响应
  • 你能不能也添加你的 JSON 数据。
  • 可能是因为你没有设置LayoutManager? stackoverflow.com/questions/35679776/…

标签: android


【解决方案1】:

JSONObject 解析出错。我已经用 JsonArrayRequest 改变了它,也改变了@Override 方法 getParams()

protected Map<String, String> getParams() throws AuthFailureError,

使用@Override getHeaders()

 public Map<String, String> getHeaders() throws AuthFailureError

下面会给出更正的代码

JsonArrayRequest jsonArrayRequest =   new JsonArrayRequest( Request.Method.POST, json_url,(String) null,
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {
                    int count = 0;
                    while (count<response.length()){
                        try {

                            JSONObject jsonObject = response.getJSONObject( count );
                            ListProvider listProvider  = new ListProvider(
                                    jsonObject.getString( "transfer_by_wallet" ),
                                    jsonObject.getString( "dr" ),
                                    jsonObject.getString( "cr" ),
                                    jsonObject.getString( "trans_date"));
                            arrayList.add( listProvider );
                            count++;
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                    adapter = new RecyclerAdapter1( arrayList );
                    Log.d("arraylist size",""+arrayList.size());
                    recyclerView.setAdapter( adapter );
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText( Transaction_List.this,"Error...",Toast.LENGTH_LONG ).show();
            error.printStackTrace();
        }
    }
    ){
             @Override
             public Map<String, String> getHeaders() throws AuthFailureError {
                 Map<String,String> headers = new HashMap<>(  );
                 headers.put( "email",email );
                 return headers;
             }


    };
    MySingleton.getInstance( Transaction_List.this ).addTorequestque( jsonArrayRequest );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    • 2022-01-26
    • 2020-10-15
    • 2017-01-06
    • 2014-06-25
    • 2021-12-19
    • 2022-01-21
    相关资源
    最近更新 更多