android - 保存用户创建的视图(例如按钮和文本视图)以在再次使用应用程序时恢复
问题描述
我的 Activity 有 6 个默认 CardViews,每个 cardview 包含一个约束布局,约束布局包含几个文本视图我的问题是,我想添加一个“ADD”,它会带你完成一些步骤并最终创建一个新的 cardview,但是我将如何保存用户创建的视图,以便当他们关闭应用程序并再次输入时它仍然存在?(用户可以添加多个卡片视图)
- 我熟悉 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);
之后,您可以将每个警报对象添加到列表中,然后将其传递给您的Adapter
- 一个数据库(我推荐
Sqlite
或Json
),您将在其中保存每个警报数据(时间、isOn、...)
备注 Alarm
只是一个例子!随意使用适合您项目的任何名称和属性
请参阅本教程,它的方式类似于我的建议:https ://www.javatpoint.com/android-sqlite-tutorial ,他将联系人保存到 sqlite 离线数据库并稍后获取。
推荐阅读
- spring - 用户 Bean 作为实体和普通 Bean
- javascript - 所有特殊字符代码都不会使用 Domsanitizer 转换为相应的符号
- sql - 如何在oracle sql中获取2个字符之间的值
- apache-spark - Zeppelin Spark Interpreter:从 Spark Structured Streaming 写入的 HDFS 数据中读取时禁用 _spark_metadata
- python - 如何根据熊猫中的某些条件比较 df1 中的一行与 df2 中的其他行?
- algorithm - 绘制二维 xy 图的算法
- sql - 多个条件时编写案例的更好方法
- java - Java 问题 String.split()
- typescript - 依赖项的 polyfill
- ios - Swift 4.2 中带有 JSON 数据的 Tableview