【发布时间】:2022-01-05 05:02:06
【问题描述】:
如何在 Firebase 中将多个 RecycleView 设置为单个适配器?
我正在创建一个应用程序,我的应用程序中有很多类别,创建多个适配器、模型和 RecycleView 会使应用程序变得复杂。很难为多个 RecycleView 制作不同的适配器。
我可以将多个 RecycleView 设置为一个适配器吗?通过使用 if 或 else 或 switch 案例如何做到这一点?
或者有其他选择吗?
第一个模型类
public class FirstModel {
private String Image, Text;
FirstModel() {
}
public FirstModel(String image, String text) {
Image = image;
Text = text;
}
public String getImage() {
return Image;
}
public void setImage(String image) {
Image = image;
}
public String getText() {
return Text;
}
public void setText(String text) {
Text = text;
}
}
第二个模型类
public class SecondModel {
private String Image, Text;
SecondModel() {
}
public SecondModel(String image, String text) {
Image = image;
Text = text;
}
public String getImage() {
return Image;
}
public void setImage(String image) {
Image = image;
}
public String getText() {
return Text;
}
public void setText(String text) {
Text = text;
}
链接到一个适配器
public class Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private final int FirstLayout = 0;
private final int SecondLayout = 1;
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view;
if (viewType == FirstLayout) {
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.sample_categories, null);
return new GiftsForHerViewHolder(view);
} else {
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.sample_categories, null);
return new GiftsForHimViewHolder(view);
}
}
@Override
public int getItemViewType(int position) {
????
return super.getItemViewType(position);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
switch (holder.getItemViewType()) {
case 1:
?????
}
}
@Override
public int getItemCount () {
return ???? .size();
}
class FirstViewHolder extends RecyclerView.ViewHolder {
private ImageView Image;
private TextView Text;
public FirstViewHolder(@NonNull View itemView) {
super(itemView);
Image = (ImageView) itemView.findViewById(R.id.Image);
Text = (TextView) itemView.findViewById(R.id.Text);
}
}
class SecondViewHolder extends RecyclerView.ViewHolder {
public SecondViewHolder(@NonNull View itemView) {
super(itemView);
}
}
}
【问题讨论】:
标签: java android firebase firebase-realtime-database google-cloud-platform