【问题标题】:How do you store app data locally using android studio?如何使用 android studio 在本地存储应用数据?
【发布时间】:2018-11-26 18:13:19
【问题描述】:

我刚刚开始进行 android studio 和应用程序开发。我已经完成了一些教程来学习 Android Studio 的界面和基础知识(活动、文本视图、按钮等),并且我参加了 Java 面向对象编程的大学课程。现在,这就是我想要做的:

我正在制作一个非常基本的应用程序,旨在帮助用户进行预算。该应用程序“充当”您的帐户,您添加最近支付的金额。从这里,您可以将您的钱分配给储蓄、支票等。我需要存储的数据是代表美元价值的数字、用户进行的不同分配以及这些分配的相应美元金额。

我已经设法在 Java 数据结构中包含相对较好的数据(我在 eclipse 中开发了一些算法来开始使用)。我需要序列化这些数据吗?或者尝试将其写入文本文件?我四处寻找一些教程,大多数低级教程令人困惑或需要使用 SQL 的高级技术。我感兴趣的是简单地在本地存储,就像您使用一个记录您输入的任务的待办事项列表应用程序一样。

感谢任何和所有见解。

【问题讨论】:

    标签: java android android-studio local-storage


    【解决方案1】:

    如果我是你,我会走 sql 路线。开始使用 sqlite for android 真的不难。如果您还没有看过 Google 自己的关于该主题的教程,请查看 here

    不过,如果您觉得数据库太过分了,您也可以查看提到的其他方法here。实际上,如果它类似于待办事项列表,其他选择将是 内部存储外部存储共享首选项最常用于持久化用户设置。

    如果您选择使用文件路径并且不想将数据保存为 csv 之类的文件,那么您需要让您的 java 对象实现 Serializable 接口并使用 ObjectOutputStream 将它们写入文件.

    例如:

    FileOutputStream fos = new FileOutputStream("/some/file/path/filename.ser", true);
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(yourSerializableObject);
    

    【讨论】:

      【解决方案2】:

      首先要注意的是,Activity、TextViews、Buttons 和其他视图组件不是 Android Studio 的一部分。它们是android框架的一部分。 Android Studio 是 Eclipse、NetBeans 等的 IDE。

      关于您的要求,在 android 中有更多的方法可以持久化数据。您可以使用文件、SharePreferences 和 sql (sqlite)。

      请看以下文档:

      https://developer.android.com/guide/topics/data/

      另外,我建议您关注 Google android 官方文档。 https://developer.android.com/guide/

      最好的问候, 米兰

      【讨论】:

        【解决方案3】:

        有几种方法可以将数据本地存储在设备上:

        • SharedPreferences - 通常用于存储应用设置(例如名字、姓氏等)。
        • 数据库 - 用于存储结构化数据,应用需要存储大量数据时的最佳解决方案。此外,它还具有强大而灵活的读/写操作机制。
        • Files - 不是保存结构化数据的最佳方式,没有内置机制。此外,应用程序需要额外的权限来写入/读取操作(如果您决定将数据保存在外部存储上),这可能会被用户拒绝(如果您的应用程序针对 api 23 或更高版本,您应该使用runtime permissions

        在您的案例中存储应用数据的最有效方式是数据库。

        Google 开发了Room Persistence library,它提供了 SQlite 之上的抽象层,让一切变得简单易懂。

        Here 是 Medium 上的一个很好的示例,它为 Room Persistence 库提供了易于理解的教程。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-09-01
          • 1970-01-01
          • 2013-08-17
          • 1970-01-01
          • 2021-11-15
          • 1970-01-01
          • 2018-05-06
          • 1970-01-01
          相关资源
          最近更新 更多