首页 > 解决方案 > 保存用户创建的视图(例如按钮和文本视图)以在再次使用应用程序时恢复

问题描述

我的 Activity 有 6 个默认 CardViews,每个 cardview 包含一个约束布局,约束布局包含几个文本视图我的问题是,我想添加一个“ADD”,它会带你完成一些步骤并最终创建一个新的 cardview,但是我将如何保存用户创建的视图,以便当他们关闭应用程序并再次输入时它仍然存在?(用户可以添加多个卡片视图)

我想做的是类似于警报应用程序,当您可以添加多个警报,删除警报等时,即使您重新启动警报应用程序它也会在那里

标签: androidandroid-studio

解决方案


您需要的不是保存view自身,而是在用户修改后保存每个对象的信息或状态。你是对的SharedPreferences,这不是最好的选择......

所以,我推荐两件事:

  1. 保存和获取您的 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

  1. 一个数据库(我推荐SqliteJson),您将在其中保存每个警报数据(时间、isOn、...)

备注 Alarm只是一个例子!随意使用适合您项目的任何名称和属性

请参阅本教程,它的方式类似于我的建议:https ://www.javatpoint.com/android-sqlite-tutorial ,他将联系人保存到 sqlite 离线数据库并稍后获取。


推荐阅读