为了账号安全,请及时绑定邮箱和手机立即绑定

保存数组列表<类>作为房间内的字符串

保存数组列表<类>作为房间内的字符串

慕工程0101907 2022-09-22 19:44:27
我正在使用喷气背包中的房间库,我想将我的数组列表保存在房间数据库中。我正在使用类型转换器将数组列表转换为字符串,但仍然收到错误。Error Message : Cannot figure out how to save this field into database. You can consider adding a type converter for it.这是我的类型转换器。public class TypeConverterUtils {    @TypeConverter    public static String fromArray(ArrayList<CropData> arrayList) {        return GsonUtils.toGson(arrayList);    }}这是我的数据库类。@TypeConverters({TypeConverterUtils.class})public abstract class CheruvuDatabase extends RoomDatabase {    private static final String DATABASE_NAME = "Cheruvu.db";    public abstract OtpDAO otpDAO();    public abstract FarmerInfoDAO farmerInfoDAO();    // For Singleton instantiation    private static final Object LOCK = new Object();    private static volatile CheruvuDatabase sInstance;    public static CheruvuDatabase getInstance(Context context) {        if (sInstance == null) {            synchronized (LOCK) {                if (sInstance == null) {                    context.getApplicationContext().deleteDatabase(CheruvuDatabase.DATABASE_NAME);                    sInstance = Room.databaseBuilder(context.getApplicationContext(), CheruvuDatabase.class, CheruvuDatabase.DATABASE_NAME)                            .fallbackToDestructiveMigration()                            .allowMainThreadQueries()                            .build();                }            }        }        return sInstance;    }}我想存储这个数组列表。私有数组列表裁剪数据 = 新的数组列表<>();这是我的作物数据类。public class CropData {    private String cropName;    private Crop crop;    private Float cropAcres;    private Float cropYield;    private Float cropPrice;    public String getCropName() {        return cropName;    }    public void setCropName(String cropName) {        this.cropName = cropName;    }    public Crop getCrop() {        return crop;    }
查看完整描述

1 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

您是否在数组列表变量上添加了@Embedded?因为您将需要嵌入要转换的类。


例如


ArrayList<CropData> cropData;

和作物数据.class是不同的。所以只需添加


@Embedded 

ArrayList<CropData> cropData;

你的问题就会得到解决。


查看完整回答
反对 回复 2022-09-22
  • 1 回答
  • 0 关注
  • 65 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信