2016-02-12 159 views
1

我想顯示JSON對象的數據RecyclerView因爲我試過這個但沒有得到任何數據。填充數據到RecyclerView

五月,我知道我在做什麼mistake和我有什麼missed

我怎麼能忽略learning對象的數據來自MainAdapterLearningActivity

MainAdapter類:

@Override 
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 
     View v = LayoutInflater.from(viewGroup.getContext()).inflate(rowLayout, viewGroup, false); 
     return new ViewHolder(v); 
    } 

    @Override 
    public void onBindViewHolder(ViewHolder viewHolder, int i) { 
     final Value value = values.get(i); 

     ........ 

     List<Learning> learning = value.getLearning(); 

     viewHolder.btnCallNext.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(mContext, LearningActivity.class); 
       intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       mContext.startActivity(intent); 
      } 
     }); 

    } 

LearningActivity類:

public class LearningActivity extends AppCompatActivity { 

     ...... 

     mAdapter = new LearningAdapter(valueList, R.layout.card_learning, getApplicationContext()); 
     mRecyclerView.setAdapter(mAdapter); 

    } 
} 
+4

'值列表= null' –

+0

那麼爲什麼不填充值列表 –

+0

@VivekMishra你可以指出錯誤了嗎?請發佈您的答案 – Oreo

回答

-1

約SE設置您的數據

private List<Learning> valueList = new ArrayList<Learning>(); 

這是新的空ArrayList。如果你還沒有這樣做,你應該填寫它。 要測試你的實現,你可以添加2個空對象:

valueList.add(new Learning()); 
valueList.add(new Learning()); 

至少,recyclerview現在應該包含2個空項。

你的數據看起來有點怪,太:

您可以設置一個命名值列表,Learning對象的名單。 在您的適配器onBindViewHolder功能有以下語句:

final Value value = values.get(i); 
String stringLearning = ""; 
List<Learning> learning = value.getLearning(); 

這不符合您的數據。 Value value = values.get(i);應該返回一個>Learning對象,而不是一個Learning對象的列表。

//編輯:Gnarf,你在編輯你的問題時發佈了一個全新的適配器。請忽略我上面引述的文本和下一次想你發佈什麼樣的代碼你問之前...

您的適配器類

在適配器類,你需要實現getItemCount()。由於此方法是抽象我假設你已經做到了: http://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter.html#getItemCount%28%29

public abstract getItemCount() { 
    return values.size(); 
} 
0

最後,我有resolved我自己的問題。

我發現了一個很簡單的解決方案here

高興!工作對我來說

Bundle bundle = new Bundle(); 
bundle.putParcelableArrayList("mylist", learning); 
intent.putExtras(bundle);