2017-02-24 98 views
1

所以我有一个包含多个ArrayList的ArrayList。我想要做的是显示所有阵列列表中的所有元素。问题是我创建的for循环覆盖了前面的元素。在ViewHolder中包含多个ArrayList的ArrayList

public void onBindViewHolder(final ContentClickViewHolder holder, int position) { 

    int finalPosition = MainActivity.getBasketList().get(holder.getAdapterPosition()).size(); 
    for (int i = 0; i < finalPosition; i++) { 
     final Content object = MainActivity.getBasketList().get(position).get(i); 
     final int value = i; 

     holder.name.setText(object.getRestaurant_name()); 
    } 
} 

回答

0
  1. 不要在onBindViewHolder()方法做到这一点。从这个名单

    List<YourObject> copy = new ArrayList<>(MainActivity.getBasketList());

  2. MainActivity.getBasketList()化妆副本

  3. 获取列表中进行的适配器外部的一些计算。它可以是活动,也可以是该副本上更好的主持人。

  4. 将该副本设置为适配器的新数据。

适配器应该只是帮助显示列表,不应该有逻辑来排序列表。

相关问题