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

How to make a RecyclerView adapter to get 3 items of an arraylist in every row

我需要一些关于 RecyclerView.Adapter 的帮助。我将对象 Dart 的数组列表传递给 recyclerview 适配器,我有一个 simple_list_item.xml,其中有 3 个文本视图(dart1Txt、dart2Txt 和 dart3Txt)。我希望适配器从数组列表中获取值并填充文本视图。例如,我有值 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()));
}

更新以获取更多信息: 我有一个 Dart 对象,它有一个字段 dartScore。我发送了一个 Dart 对象的 arrayList,我希望 recyclerview 适配器从 arraylist 中获取前 3 个 Dart,并用 dartScore 填充 3 个文本视图,然后从 arraylist 中获取下一个 3 个 Dart,并在新行中再次填充 3文本视图等等。

谢谢

您可以将飞镖列表拆分为 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;
}