我正在使用喷气背包中的房间库,我想将我的数组列表保存在房间数据库中。我正在使用类型转换器将数组列表转换为字符串,但仍然收到错误。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;
你的问题就会得到解决。
添加回答
举报
0/150
提交
取消