在Android中存储每天数据的最佳方式?

在Android中存储每天数据的最佳方式?,android,calendar,Android,Calendar,我需要向我的应用程序的用户显示一个日历,每天都有一个默认的利率int,当他/她选择一个日期时,给他/她一个选项来定制当天的利率int 显示我正在使用的日历 要存储每天的费率,请执行以下操作: 另一个变量存储每天的一般费率,直到用户覆盖它 我困惑的是存储此类数据的最佳方式是什么?我能用吗?如果是的话,你能给我指一个教程什么的吗?我不懂安卓,但用Java 地图 我的第一个想法是用date对象作为键,override int作为值来创建一个。可能是一个。看 地图:日期→ 整数 您可以循环或查询日期键

我需要向我的应用程序的用户显示一个日历,每天都有一个默认的利率int,当他/她选择一个日期时,给他/她一个选项来定制当天的利率int

显示我正在使用的日历

要存储每天的费率,请执行以下操作:

另一个变量存储每天的一般费率,直到用户覆盖它


我困惑的是存储此类数据的最佳方式是什么?我能用吗?如果是的话,你能给我指一个教程什么的吗?我不懂安卓,但用Java

地图 我的第一个想法是用date对象作为键,override int作为值来创建一个。可能是一个。看

地图:日期→ 整数

您可以循环或查询日期键以将其值应用于日历

在集合中,需要使用对象而不是int原语。将为您完成转换工作

系列化 然后,每次编辑该映射时,即每次用户覆盖默认速率时,该映射都会被映射到存储。或者在你的应用程序退出时这样做

启动应用程序时,从存储中还原地图

如果Android支持,您可以使用序列化。看这个问题

但我只会写一个纯文本文件。该库处理读/写或文件的繁重工作

我建议使用合理的标准格式:YYYY-MM-DD将日期值写入字符串

技巧:考虑从JoDA时间或Java.Time的后端使用一个LoalDead对象,而不是java。UTI.Deal/Orthor作为键。

时区 请注意,日期的含义取决于时区。例如,巴黎新的一天比蒙特勒尔早,蒙特勒尔仍然是“昨天”。如果应用程序的上下文超出了一个默认时区,则可能需要记录用户选择覆盖时适用的时区

数据库 如果您有大量不需要全部存储在内存中的值,那么请使用数据库或SQLite


对于一小部分数据,请使用上面描述的Map+序列化。

我的观点是,使用SQLITE存储数据对于一小部分值来说,数据库就太过了。这一切都取决于问题没有具体说明的数据量。考虑到Android设备上使用每个特定日期的人工输入,我怀疑数据中会有很少的条目。