2017-03-12 32 views
0

我有這樣改造JSON數組recyclerview

[{"id":94973,"slug":"la-liga-real-betis-1-1-barcelona-29-januari-2017","type":"post"},{"id":94957,"slug":"fa-chelsea-4-0-brentford-28-januari-2017","type":"post"},{"id":94944,"slug":"serie-a-ac-milan-1-2-napoli-22-januari-2017","type":"post"},{"id":94663,"slug":"boullier-soroti-performa-mclaren-musim-ini","type":"post"},{"id":94660,"slug":"balotelli-tawarkan-diri-ke-sassuolo","type":"post"}] 

JSON響應,我想與改造 我已經檢查過這並沒有什麼錯,從JSON獲取數據,但我recyclerview犯規顯示任何數據。我認爲我錯了,通過對arraylist然後適配器的響應。

我對響應等級

​​

}

,這onbindview在我的適配器類

public void onBindViewHolder(MyAdapter.MyViewHolder holder, int position) { 
    holder.mTextView.setText(String.valueOf(coba.get(position).getId())); 
    holder.mDetView.setText(String.valueOf(coba.get(position).getSlug())); 
    holder.mVerView.setText(String.valueOf(coba.get(position).getType())); 
    holder.mCardView.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      Intent intent = new Intent(v.getContext(),DetailBerita.class); 
      v.getContext().startActivity(intent); 
      System.out.println("Clicked"); 
     } 
    }); 
} 

回答

1

看起來你需要通知適配器。改造不會爲你做到這一點。

另外,不要設置data = new ArrayList。如果您希望它顯示在適配器中,您需要改爲clear()addAll()

request.getPostDet().enqueue(new Callback<List<Coba>>() { 
    @Override 
    public void onResponse(Call<List<Coba>> call, Response<List<Coba>> response) { 
     data.clear(); 
     try { 
      List<Coba> responseBody = response.body(); 
      data.addAll(responseBody); 
      Log.i("HASIL", "onResponse: "+data); 
     } catch (Exception e) { 
      Log.d("onResponse", "There is an error"); 
      e.printStackTrace(); 
     } 
     adapter.notifyDataSetChanged(); 
    } 
+0

你可以給最好的教程網站的鏈接學習改造嗎? –

+0

它仍然沒有向適配器顯示任何數據。但是當我檢查循環..似乎迴應它好吧.. –

+0

它的工作現在..thanks..i在我的onbindview添加String.valueOf,然後我使用你的解決方案,通過添加data.addAll(responseBody); ,不使用data.clear; –