我使用Android Studio开发了一个应用程序,该应用程序具有一个字段,用户可以在该字段中标记他们将使用某种药物的一周中的哪一天。
我曾想过使用布尔数组以类似于
的格式存储该信息 {false,true,true,false,true,true,false}
不幸的是,我发现Realm不支持数组,另外我尝试使用RealmList,但它也没有用。有没有人知道在数据库中存储此信息的好方法,而不是在类中创建七个布尔值?
答案 0 :(得分:0)
Realm是一个面向对象的数据库,这意味着它自己存储对象。因此,接近它的最佳方法是创建一个扩展RealmObject
的类,其中包含七个布尔属性(每周的每一天),也许是一年中的周数或星期一的初始日期,直到你。
然后,您可以通过创建托管Realm实例直接保存该对象,并根据文档存储它。您可以检查如何将realm实例存储到数据库here
中答案 1 :(得分:0)
如果您不需要执行像星期三必须采取的药物那样的问题,那么您可以将其存储为字符串字段
[true, false, false, true, true, true, false]
使用JSON解析器(here)将其作为List<Boolean>
获取。
如果您执行需要进行该查询,那么您应该只创建7个布尔字段。
答案 2 :(得分:0)
我要去存储一个@PrimaryKey
与星期几有关的对象(值0到6表示星期一到星期日)和你的布尔字段:
class Day extends RealmObject {
@PrimaryKey
int dayOfWeek; // could be String as well
boolean takeMedication;
}
然后,您可以使用dayOfWeek
查询所有对象并按findAllSorted()
排序:
realm.where(Day.class).findAllSorted("dayOfWeek");
或仅查询某一天:
realm.where(Day.class).equalTo("dayOfWeek", 0).findFirst();
优点:
@PrimaryKey
注释将确保您在一个Day
值的领域中只有一个dayOfWeek
实例Day
课程添加更多字段。您还可以使用initial data确保您通过首次启动应用程序将数据库中的所有7天存储在数据库中。