我的活动有6个默认的卡片视图,每个卡片视图包含一个约束布局,约束布局包含两个文本视图我的问题是,我想添加一个";ADD";这将带你完成一些步骤,并最终创建一个新的卡片视图,但我如何保存用户创建的视图,以便当他们关闭应用程序并再次输入时,它仍然存在?(用户可以添加多个卡片视图(
- 我熟悉SharedPreferences,但我认为在这种情况下这是不可能的,因为它要求我将数据保存在声明的字符串中,而用户根本无法访问该字符串
我想做的是类似于报警应用程序的事情,当你可以添加多个报警、删除报警等时,即使你重新启动报警应用程序,它也会在那里
您需要的不是保存view
本身,而是在用户修改后保存每个对象的信息或状态。您对SharedPreferences
的看法是正确的,它不是最好的选择。。。
所以,我推荐两件事:
-
保存&获取Cardviews数据应该来自具有属性的自定义类(例如:
Alarm
(。package my.app.example; class Alarm{ long time; boolean isOn; String label; public Alarm(long time, boolean isOn, String label){ this .time = time; this .isOn = isOn; this .label = label; } }
您可以按如下方式使用它:
long timeFromDatabase = ...;//get time value from database
boolean isOnFromDatabase= ...;//get isOn value from database
String labelFromDatabase= ...;//get label value from database
Alarm alarm1 = new Alarm(timeFromDatabase, isOnFromDatabase, labelFromDatabase);
之后,您可以将每个Alarm对象添加到List中,然后将其传递给Adapter
- 一个数据库(我建议使用
Sqlite
或Json
(,用于保存每个报警数据(时间、isOn…(
备注Alarm
只是一个例子!随意使用适合您项目的任何名称和属性
请参阅本教程,它的方式与我建议的类似:https://www.javatpoint.com/android-sqlite-tutorial,他将联系人保存到sqlite脱机数据库中,稍后再获取。