2016-02-12 115 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);