【发布时间】:2021-04-08 14:37:44
【问题描述】:
我有一个包含对象类型的接口。它也用于 ViewTypes。
public interface EventType {
int TYPE_FROG = 1;
int TYPE_STEAK = 2;
int TYPE_ELEPHANT = 3;
int getType();
void onBindViewHolder(RecyclerView.ViewHolder viewHolder);
}
我还有三类数据 - Frog、Elephant 和 Steak。 我在屏幕上显示所有这些对象的数组。
@Entity
public class Frog implements EventType {
@PrimaryKey(autoGenerate = true)
int id;
String title;
Boolean isCompleted;
@Override
public int getType() {
return EventType.TYPE_FROG;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder) {
ViewHolderFactory.FrogViewHolder frogViewHolder = (ViewHolderFactory.FrogViewHolder) viewHolder;
frogViewHolder.tv.setText("Жаба");
}
}
@Entity
public class Elephant extends Frog implements EventType{
@PrimaryKey(autoGenerate = true)
int id;
String title;
Boolean isCompleted;
@Override
public int getType() {
return EventType.TYPE_ELEPHANT;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder) {
ViewHolderFactory.ElephantViewHolder elephantViewHolder = (ViewHolderFactory.ElephantViewHolder) viewHolder;
elephantViewHolder.tv.setText("Слон");
}
}
@Entity
public class Steak extends Frog implements EventType{
@PrimaryKey(autoGenerate = true)
int id;
String title;
Boolean isCompleted;
@Override
public int getType() {
return EventType.TYPE_STEAK;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder) {
ViewHolderFactory.SteakViewHolder steakViewHolder = (ViewHolderFactory.SteakViewHolder) viewHolder;
steakViewHolder.tv.setText("Стейк");
}
}
在我的片段中,我创建了所有三种类型的对象列表,即 List。 使用适配器在 RecyclerView 中显示的列表。
如何将此列表保存到数据库中?还是我必须从界面创建一个单独的表?
【问题讨论】:
-
为什么要混合 DAO 和 UI 对象?你不应该这样做......使用一个实体并添加类型字段
-
我该怎么办?我不太明白。
标签: android database android-recyclerview android-room adapter