如何使RecyclerView适配器在每一行中获得3个arraylist项

时间:2016-07-02 11:54:23

标签: android android-recyclerview adapter recycler-adapter

我需要一些RecyclerView.Adapter的帮助。我传递给一个对象Dart的arraylist的recyclerview适配器,我有一个simple_list_item.xml,它有3个textviews(dart1Txt,dart2Txt和dart3Txt)。我希望适配器从arraylist获取值并填充textviews。例如,我有值10,20,30,3,5,6,我希望像那样打印

10 20 30

3 5 6

等等。

我无法理解如何做到这一点。这是我的onBindViewHolder。

onBindViewHolder(RoundsStatsAdapter.ViewHolder holder, int position){
   Dart dart = mDarts.get(position);
   holder.dart1Textview.setText(String.valueOf(dart.getScore()));
}

更新以获取更多信息: 我有一个具有字段dartScore的Dart对象。我发送了一个Dart对象的arrayList,我希望recyclelerview适配器从arraylist获得前3个Darts,并用dartScore填充3个textviews,之后从arraylist接下来的3个Darts再到3个新的填充3 textviews等。

谢谢

1 个答案:

答案 0 :(得分:1)

您可以在DartTuple列表中拆分飞镖列表:

private class DartTuple {
    Dart dart1, dart2, dart3;
}

或者如果您是列表,您的列表总是包含3 * x项,您只需更改您的适配器

onBindViewHolder(RoundsStatsAdapter.ViewHolder holder, int position){
   position = position * 3; // to use multiple 3 increment
   Dart dart1 = mDarts.get(position);
   Dart dart2 = mDarts.get(position + 1);
   Dart dart3 = mDarts.get(position + 2);
   /* your layout
      holder.dart1Textview.setText(String.valueOf(dart.getScore()));
   */
}

@Override
public int getItemCount() {
    return mDarts.size()/3;
}