java - 使用类的构造函数创建的 ArrayList 可以保存到 SharedPreferences 中吗?

标签 java android

所以我正在制作一个简单的酒单应用程序。主要 Activity 有三项。

  1. MainActivity - 这是 Wine 列表的位置,还有一个可带您前往 AddWineActivity 的 FAB。此页面上的每个列表项仅显示缩略图、 Wine 名称、价格和评级。

  2. AddWineActivity - 有几个 EditText(用于获取 Wine 的名称、价格和描述)、一个评级栏(用于获取 Wine 评级)和一个按钮,用于将详细信息转换为字符串并将其放入 Intent 额外。

  3. WineDetailsActivity - 这将有一个不错的页面,其中包含您单击的列表中的 Wine 的所有详细信息。

<小时/>

我的应用程序目前几乎按照我想要的方式运行。唯一的事情是,我需要实际保存 Wine 列表,这样在您返回添加另一种 Wine 后,或者如果您离开应用程序并返回,它就不会重置。

这是棘手的部分(这没有帮助,因为我还不太了解如何保存到设备)。我使用类添加到数组列表中。

我有一个 Wine 类,它的构造函数如下所示:

public Wine(String mWineName, String mWinePrice, String mWineRating, String mWineDescription, int mWineImageResourceID) {}

然后在MainActivity上,添加到列表中,如下所示

wines.add(new Wine(getIntent().getStringExtra("WINENAME"), getIntent().getStringExtra("WINEPRICE"), getIntent().getStringExtra("WINERATING"), getIntent().getStringExtra("WINEDESCRIPTION"), R.drawable.mywinelogo));
<小时/>

将类似列表添加到设备的推荐方法是什么?它仍然是共享偏好还是我没有走在正确的轨道上?

如果需要有关该应用的更多详细信息,只需询问,我会提供。

谢谢!

最佳答案

What would be the recommended way to add a list that looks like that to the device? Would it still be shared preferences or am I not on the right track?

最后,您将获得一个表格数据结构:行( Wine )和列(名称、评级等)。

当您有表格数据结构时,请将其保存为适合表格的结构。这可能是 SQLite 数据库或某种形式的文件(例如 JSON、XML)。

SharedPreferences 不太适合这种情况。您可以将表转换为 JSON 并将其存储为字符串首选项,但这相对不常见。恕我直言,只有当您的其余大部分数据对于 SharedPreferences 来说更自然(例如,您使用 PreferenceScreen 来收集它们)并且想要保留所有内容时,这才有意义一起。

关于java - 使用类的构造函数创建的 ArrayList 可以保存到 SharedPreferences 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46144456/

相关文章:

android - android应用更新后保留后台服务

java - 如何找到这段代码的时间和空间复杂度?

java - MongoClient 是抽象的,无法实例化

java - 为什么 EditText 的值(非空)总是 true?

java - 从 Java 字符串转换为 Windows-1252 格式

android - 在 Android 上存储不会在更新或卸载时被删除的文件

java - 匿名类在 Java 中有何用处?

java - Android 开始日历 Intent 与开始和结束时间

java - 在 Java 中解码 URI 查询字符串

java - 如何使用 Json 对象进行模拟