我有一个包含Match对象列表的Tournament对象。我想展示一些比赛详情,然后列出下面的比赛以及一些细节。问题是它可以是1场锦标赛到3场比赛或1-4场等。
锦标赛1
锦标赛2
我一直在尝试在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 :(得分:-1)
我通过传入一个充当地图的单独数组解决了这个问题,基本上我的适配器看起来像adapter(map, tournament, matches)
,这使我可以适当地显示我的视图。
如果你有一个更好的方法,请随时告诉我。