【问题标题】:how to store custom object with list in sqlite database in android如何在android的sqlite数据库中存储带有列表的自定义对象
【发布时间】:2019-01-08 09:48:05
【问题描述】:

如何为包含类似列表的自定义对象创建表

public class Mobel implements Parcelable {
    int thumbnail;
    List<Integer> pics;
    int price;
    String joziat;
    String code;
}

如您所知,int 和 string 列没有问题,但我应该如何存储我的整数列表?我正在考虑为它制作一个单独的表格,但由于我不知道我有多少特定对象的图片不知道我应该如何加入它们

【问题讨论】:

    标签: android database sqlite database-design


    【解决方案1】:

    虽然你确实不能在 sqlite 中存储对象,但你可以序列化它并存储序列化的对象:

    Gson gson = new Gson();
    String toStoreObject = gson.toJson(modelObject, Model.class);
    

    当你拿回字符串时,只需执行以下操作:

    Model modelObject = gson.fromJson(storedObjectString, Model.class);
    

    或者只是序列化对象的属性(在你的情况下是列表)。

    我会做不同的事情:

    1. 为图像创建另一个表并将该表链接到存储模型对象的表(n 对 1 关系)

    2. 不要在 sqlite 中存储图像。将它们存储在内部存储中,并在 sqlite 中仅保存文件的路径。

    3. 如果您真的想将图像存储在 sqlite 中,请将图像转换为 base64 字符串并存储。

    【讨论】:

    • 男!但是我怎样才能将整数列表转换为 json,然后再将该 json 转换为整数列表?
    • 获取序列化列表作为字符串: String serializedList = gson.toJson(pics);从序列化字符串中获取列表: Type type = new TypeToken>() {}.getType(); List pics = gson.fromJson(serializedList, type);
    • 再次感谢人。你的分析器真的帮助了我,对不起,我不能给你 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多