2017-02-24 5 views
1

複数のArrayListを含むArrayListがあります。私がしようとしているのは、すべてのarraylistsのすべての要素を表示することです。問題は、私が作成したforループが前の要素をオーバーライドすることです。複数のArrayListをViewHolderに含む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()方法でこれをしないでください。

  2. は、このリストのMainActivity.getBasketList()メイクコピー

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

  3. からリストを取得し、アダプタの外にいくつかの計算を行います。それは活動、またはそのコピーのより良いプレゼンターになることができます。

  4. このコピーをアダプターの新しいデータとして設定します。

アダプターは、リストを表示するのに役立ちます。リストを並べ替えるロジックを持つべきではありません。

関連する問題