我如何创建一个android recyclerView,它显示具有不同模型类的firebase实时数据库数据?
我想要一个从Firebase实时数据库获取数据的recyclerView。但是数据库节点包含具有不同模型类的数据。现在,如何根据dataSnapshot检测需要使用的模型类。您不需要多个适配器,您需要多个ViewHolder,请选中此项 然后在onCreateViewHolder中我如何创建一个android recyclerView,它显示具有不同模型类的firebase实时数据库数据?,android,firebase-realtime-database,android-recyclerview,Android,Firebase Realtime Database,Android Recyclerview,我想要一个从Firebase实时数据库获取数据的recyclerView。但是数据库节点包含具有不同模型类的数据。现在,如何根据dataSnapshot检测需要使用的模型类。您不需要多个适配器,您需要多个ViewHolder,请选中此项 然后在onCreateViewHolder中 @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { switch (
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
switch (viewType) {
case 0: return new ViewHolder0(...);
case 1: return new ViewHolder1(...);
...
}
}
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
switch (holder.getItemViewType()) {
case 0:
ViewHolder0 viewHolder0 = (ViewHolder0)holder;
...
break;
case 1:
ViewHolder1 viewHolder1 = (ViewHolder1)holder;
...
break;
}
}
和在onBindViewHolder中
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
switch (viewType) {
case 0: return new ViewHolder0(...);
case 1: return new ViewHolder1(...);
...
}
}
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
switch (holder.getItemViewType()) {
case 0:
ViewHolder0 viewHolder0 = (ViewHolder0)holder;
...
break;
case 1:
ViewHolder1 viewHolder1 = (ViewHolder1)holder;
...
break;
}
}
如果“多适配器”的意思是在recyclerView中显示多种类型的RecyclerItem,则只需重写适配器类中的getItemViewType方法,然后在OnCreateViewHolder中,通过选中viewType参数,可以相应地放大recyclerItemLayouts
查看此链接了解更多信息:所有不同类型的数据都在同一个节点中,具有不同的推送id。现在,我如何检测即将到来的json数据类型(例如,第一次说名称:Bhaskar,年龄:22岁,第二次下载数据是地区:Jorhat,国家:印度等).以及我的问题中为什么要做否定标记。谁给我这个?如果你不喜欢我的问题,那么你不应该回答,但为什么给我负面分数呢。虽然我不在乎正负标记,但这让我很生气。你必须了解你在处理什么样的JSON数据。例如,您可以为以“name”为键的JSON对象创建一个视图,为以“district”为键的数据创建另一个视图。为了避免对您的问题投反对票,请尝试在现有或已回答的问题中搜索这些问题,让它们切中要害,等等。快乐编码!!我在你的回答下面添加了评论,因为我没有找到任何其他地方添加该评论。但我不是指你,我指的是下层选民。对不起。您的链接很有帮助。请检查副本以了解如何使用两个不同的类。