【问题标题】:Room database : How set default Value from strings resources房间数据库:如何从字符串资源中设置默认值
【发布时间】:2021-11-27 17:23:10
【问题描述】:

如何从字符串等资源中设置某些字段的默认值。因为我想为不同的语言设置值

@ColumnInfo(defaultValue = "") // R.string.someword
private String publisher;

尝试时:

@ColumnInfo(defaultValue = Resources.getSystem().getString(android.R.string.someword)) 
private String publisher;

得到以下错误

Attribute value must be constant

【问题讨论】:

    标签: java android android-room


    【解决方案1】:

    简而言之,这些值不能在运行时更改,而 Room 构建 SQL,在编译时创建表、索引和视图。

    default = "" 参数用于将值应用于CREATE TABLE .... sql 的DEFAULT 构造。

    如果你编译成功,你可以在java生成的(Android View)文件中看到生成的SQL,该文件与@Database类同名但后缀为_Impl。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-18
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      相关资源
      最近更新 更多