如何解决为什么此List <Double>在Room数据库中没有存储任何数据?
我正在使用数据库中的双精度值来填充图表。我使用List<String>
以相同的方式并同时添加项目,因此此列表中也应该有项目。 List<String>
中的项目已正确返回,但是List<Double>
的大小为0。也许是类型转换器的问题所在?
这是我使用类型转换器将其保存到Room数据库的方法:
Convertors.class
@TypeConverter
public String fromDoubleArray(List<Double> values) {
String string = "";
for(double d : values)
string += (d + ",");
return string;
}
@TypeConverter
public List<Double> todoubleArray(String concatenatedStrings) {
List<Double> doubleList = new ArrayList<>();
String[] doubleStrings = concatenatedStrings.split(",");
for (int i=0; i<doubleList.size(); i++) {
doubleList.add(Double.parseDouble(doubleStrings[i]));
}
return doubleList;
}
这是我添加列表项的方式:
List<Double> balanceHistory = selectedAccount.getBalanceHistory();
balanceHistory.add(newBalance);
selectedAccount.setBalanceHistory(balanceHistory);
accountsviewmodel.update(selectedAccount);
道课:
@Dao
public interface AccountsDao {
@Insert
void insert(Account account);
@Update
void update(Account account);
@Delete
void delete(Account account);
@Query("SELECT * FROM accounts_table")
List<Account> getAllAccounts();
@Query("SELECT * FROM accounts_table")
LiveData<List<Account>> getAllAccountsLive();
}
帐户类别:
@Entity(tableName = "accounts_table")
public class Account implements Serializable {
@PrimaryKey(autoGenerate = true)
private int id;
private List<Double> balanceHistory;
//codes...
public Account(.....List<Double> balanceHistory....) {
this.balanceHistory = balanceHistory;
//....
}
public List<Double> getBalanceHistory() {
return balanceHistory;
}
public void setBalanceHistory(List<Double> balanceHistory) {
this.balanceHistory = balanceHistory;
}
//codes...
}
AccountsDatabase
@Database(entities = {Account.class},version = 2,exportSchema = false)
@TypeConverters(Converters.class)
public abstract class AccountsDatabase extends RoomDatabase {
private static AccountsDatabase instance;
public abstract AccountsDao accountsDao();
public static synchronized AccountsDatabase getInstance(Context context) {
if (instance == null) {
instance = Room.databaseBuilder(context.getApplicationContext(),AccountsDatabase.class,"accounts_database")
.fallbackToDestructiveMigration()
.build();
}
return instance;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。