我正在为一家餐厅编写一个简单的应用程序(仅用于练习(,食品分为三类(例如快餐,沙拉和三明治(。我想根据用户在MainActivity中选择的类别,在三个不同的RecyclerView中显示这些食物。 我这样做的策略(我认为这不好(是:
1.我有一个枚举类,每个类别有三个项目。
枚举类类型 { 快餐, 沙拉 三明治 }
- 每个食物的构造函数中都有一个参数:
类 食品(... , 类型: 类型(
- 根据
- 房间 db 的类型获取特殊类别
@Query (从食物中选择 * 其中类型=:类型(
乐趣获取快餐(类型:类型(: 列表
是否有更好的方法对 Room 中的项目进行分类? getFastFood方法是否有效地从Room获取数据?
只需使用转换器,例如
@TypeConverters(Converters::class)
abstract class Database : RoomDatabase()
object Converters {
@JvmStatic
@TypeConverter
fun fromTypes(value: Types): String {
return value.toString()
}
@JvmStatic
@TypeConverter
fun toTypes(value: String): Types {
return Types.valueOf(value)
}
}
现在在db中Types
字段存储为字符串,这是枚举的名称属性