2015-07-03 3 views
2

У меня есть объект турнира, который содержит список объектов Match. Я хотел бы отобразить некоторые детали турнира, а затем перечислить совпадения с некоторыми деталями. Проблема заключается в том, что это может быть 1 турнир до 3 соответствий или 1-4 и т.д.Android Итерация по вложенным объектам в RecyclerView

турнир 1

    + Матч 1
    + 2 матча

турнир 2

    + Соревнование 1
    + Match 2
    + Match 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

Смежные вопросы