我正在制作一个 Android 应用程序(我的第一个)来记录健身房锻炼,但我不确定如何最好地构建数据库来存储这些数据。
我希望能够存储:
练习列表及其属性
锻炼项目及其属性列表(包含练习)
记录的锻炼列表(锻炼和锻炼日期)
每次记录的锻炼的所有组数据(锻炼次数、组数、每组重量、每组重复次数)
我已经制定了以下架构来说明如何实现这一点:
我的主要问题是:
将所有单独的日志数据集存储在单个表(日志条目)中是否是最佳选择?
锻炼类型和设备表应该分开还是只是锻炼表中的列?锻炼类型也是如此
就性能/可用性而言,这是否是一个好方法?
谢谢!
我可以使用打开我的BottomSheetDialogFragment
val bottomSheet = BottomSheetFragment()
bottomSheet.show(fragmentManager!!, "BottomSheet")
Run Code Online (Sandbox Code Playgroud)
但它只打开以显示其内容的一半-我希望它在打开时可以扩展到屏幕的整个高度,而无需向上拖动。
我环顾四周,似乎一种方法是将BottomSheetBehavior状态设置为STATE_EXPANDED,但是我无法在Kotlin中找到解决方法。
任何帮助,将不胜感激!
我正在尝试使用以下方法在我的房间数据库中保留时间戳TypeConverter
:
class Converters {
@TypeConverter
fun fromTimestamp(value: Long?): Calendar? {
if(value == null) return null
val cal = GregorianCalendar()
cal.timeInMillis = value
return cal
}
@TypeConverter
fun toTimestamp(timestamp: Calendar?): Long? {
if(timestamp == null) return null
return timestamp.timeInMillis
}
}
Run Code Online (Sandbox Code Playgroud)
我的两个实体包括以下列:
@ColumnInfo(name = "timestamp")
val timestamp: Calendar?,
Run Code Online (Sandbox Code Playgroud)
但是在尝试构建项目时出现编译错误 - 在使用Date
TypeConverter
开发人员参考指南中的示例时我没有遇到任何问题。
我无法看到实际的错误是什么,因为如果与 Room 相关的代码有问题,我只会收到一堆数据绑定“找不到符号”错误。
sqlite typeconverter kotlin android-room android-architecture-components
android ×2
android-room ×2
kotlin ×2
sqlite ×2
android-architecture-components ×1
bottom-sheet ×1
database ×1