Android 遍历 RecyclerView 中的嵌套对象
Android Iterating over nested Objects in a RecyclerView
我有一个 Tournament 对象,其中包含一个 Match 对象列表。我想显示一些锦标赛的详细信息,然后在下面列出一些详细信息的比赛。问题是它可以是 1 场比赛到 3 场比赛或 1-4 等。
锦标赛 1
+匹配 1
+匹配 2
锦标赛 2
+匹配 1
+匹配 2
+匹配 3
我一直在尝试在 RecyclerView
中使用多个视图,并且可以使 1-1 关系正常工作,但我不确定在何处添加迭代,我一直在使用 [=13= 测试各种内容] 无济于事,不胜感激。
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;
}
}
}
我通过传入一个充当地图的单独数组解决了这个问题,基本上我的适配器看起来像 adapter(map, tournament, matches)
这样我就可以适当地显示我的视图。
如果你有更好的方法,请随时告诉我。
我有一个 Tournament 对象,其中包含一个 Match 对象列表。我想显示一些锦标赛的详细信息,然后在下面列出一些详细信息的比赛。问题是它可以是 1 场比赛到 3 场比赛或 1-4 等。
锦标赛 1
- +匹配 1
- +匹配 2
锦标赛 2
- +匹配 1
- +匹配 2
- +匹配 3
我一直在尝试在 RecyclerView
中使用多个视图,并且可以使 1-1 关系正常工作,但我不确定在何处添加迭代,我一直在使用 [=13= 测试各种内容] 无济于事,不胜感激。
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;
}
}
}
我通过传入一个充当地图的单独数组解决了这个问题,基本上我的适配器看起来像 adapter(map, tournament, matches)
这样我就可以适当地显示我的视图。
如果你有更好的方法,请随时告诉我。