2015-07-03 125 views
2

我有一個錦標賽對象,其中包含Match對象列表。我想顯示一些比賽細節,然後在下面列出比賽中的一些細節。的問題是,它可以是1至錦標賽3匹配或1-4等Android在RecyclerView中迭代嵌套對象

錦標賽1

    + 1場
    +第2場

錦標賽2

    +比賽1
    +比賽2
    +比賽3

我一直在試圖使用RecyclerView之內的多個視圖,並可以得到1-1關係工作,但我不確定在哪裏添加迭代,我一直在測試各種東西與onBindViewHolder無濟於事,一個小方向將是非常感激。

public class MultiViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { 

    private List<Tournament> mTournaments; 
    private static final int VIEW_TYPE_Tournament = 0; 
    private static final int VIEW_TYPE_Match = 1; 

    class TournamentHolder extends RecyclerView.ViewHolder { 
     ... 
    } 

    class MatchHolder extends RecyclerView.ViewHolder { 
     ... 
    } 

    @Override 
    int getItemViewType(int position) { 
     return mTournaments.get(position).getType(); 
    } 

    @Override 
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     switch (viewType) { 
      case VIEW_TYPE_Tournament: return new TournamentHolder (...); 
      case VIEW_TYPE_Match: return new MatchHolder (...); 
      default: return new TournamentHolder(...); 
     } 
    } 

    @Override 
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 
     switch (getItemViewType(position)) { 
      case VIEW_TYPE_Tournament: 
       TournamentHolder tournamentHolder = (TournamentHolder)holder; 
       .. 
       break; 
      case VIEW_TYPE_Match: 
       MatchHolder matchHolder = (MatchHolder)holder; 
       ... 
       break; 
      default: 
       .... 
       break; 
     } 
    } 
} 
+0

查看@Intdef並將其用於您的查看類型。 http://tools.android.com/tech-docs/support-annotations – petey

+0

@petey謝謝,我會研究使用支持註釋作爲typedefs。 – xPandemic

回答

-1

我已經通過在一個單獨的陣列充當地圖解決此問題的工作,基本上我的適配器看起來像adapter(map, tournament, matches),這讓我可以適當地顯示我的意見。

隨時讓我知道更好的方法,如果你有一個。

+2

地圖到底做了什麼?我正在嘗試在錦標賽內的巡迴賽和比賽列表上做幾乎相同的事情。 – Aiapaec