将JSON解析为不显示的回收站视图

时间:2017-03-09 13:51:06

标签: android json android-studio android-recyclerview

我正在使用JSON创建一个获取附近位置的应用,并将其显示在recyclerview中。我的问题是,我真的不确定我在这里做错了什么因为一切看起来都很好。

这是我阅读JSON的代码:

private void loadRecyclerViewData(){

    final ProgressDialog progressDialog = new ProgressDialog(this);
    progressDialog.setMessage("Loading data ...");
    progressDialog.show();

    StringRequest stringRequest = new StringRequest(Request.Method.GET, URLDATA,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    progressDialog.dismiss();

                    try {
                        JSONObject jsonObject = new JSONObject(response);
                        JSONArray jsonArray = jsonObject.getJSONArray("results");

                        for (int i = 0; i < jsonArray.length(); i++) {

                            JSONObject o = jsonArray.getJSONObject(i);

                            List_Item item = new List_Item(o.getString("name"), o.getString("reference"));
                            listItems.add(item);
                            System.out.println("My List Item: " + listItems);

                        }

                        adapter = new MyAdapter(listItems, getApplicationContext());
                        recyclerView.setAdapter(adapter);

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

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

            Toast.makeText(getApplicationContext(), "Error: " + error.getMessage(), Toast.LENGTH_SHORT).show();

        }
    });

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(stringRequest);

}

这是我的JSON结构:

JSON structure

这是我的stackTrace:StackTace

1 个答案:

答案 0 :(得分:1)

您应该设置布局管理器。

LinearLayoutManager layoutManager
    = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
reycyclerview.setLayoutManager(layoutManager);
相关问题