我将复选框标题和状态存储为具有包含这些值的JSONA的JSONArray的JSON。
我试图将它存储为两个JSONArrrays,一个用于标题,一个用于状态,但我无法编写算法来维护这些状态以及从列表中删除任何一个。
执行此操作需要太多代码。 制作方法删除包含boolean和其他包含字符串的数组元素。
此外,我们无法在较旧的api中使用Jsonarray.remove()
方法。那么你如何建议有效地实现这一目标
注意 - 我无法使用sharedPreferences,因为我正在使用此类数据存储多行。它就像一个清单制造商,我们可以在其中添加或删除列表项,并在完成后将其标记为完整。
我想存储在数据库中,并在需要时检索它,我 选择JSON,因为它可以存储为字符串,并可以解析为对象 需要时
答案 0 :(得分:0)
你有很多选择。如果您正在使用数据库,只需创建一个类似的模式,
checkbox_key TEXT NOT NULL,
checkbox_value INT DEFAULT 0
您当然可以使用共享首选项。只需制定您的架构,例如
checkbox.<checkbox-key>=<checkbox-value>
JSON不是一个很好的选择,因为解析它是一个相对昂贵的操作。共享首选项虽然存储为XML,但通过内存缓存和异步写入进行了优化(请参阅Editor.apply()
)。你可以用你的JSON做到这一点,但它只是重新发明轮子。