2017-03-09 98 views
0

我正在做一個應用程序,使用JSON獲取附近的位置並將它們顯示在回收站視圖中。我的問題是,我真的不知道我在這裏做錯了什麼導致一切看起來很不錯。解析JSON到recyclerview不顯示

這是我閱讀JSON代碼:

私人無效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

這是我的堆棧跟蹤: StackTace

+0

定義您的回收站查看和適配器在請求之前並在請求中使用adapter.notifyDatasetChanged(); –

+0

感謝@Assem,它現在正在工作,我想我需要一行代碼... – Zack

+0

歡迎您 –

回答

1

您應該設置佈局管理器。

LinearLayoutManager layoutManager 
    = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false); 
reycyclerview.setLayoutManager(layoutManager); 
+0

這就是我如何做了我的Recyclerview設置:recyclerView =(RecyclerView)findViewById(R.id.recycler_view) ; recyclerView.setHasFixedSize(true); recyclerView.setLayoutManager(新的LinearLayoutManager(this)); – Zack

+0

你能分享你的堆棧跟蹤嗎? – mertsimsek

+0

我剛剛更新了它@mertsimsek – Zack