Как я могу установить значение по умолчанию для некоторых полей из ресурсов, таких как строки. потому что я хочу установить значение для разных языков

@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
1
user17516961 27 Ноя 2021 в 20:23

1 ответ

Лучший ответ

Короче говоря, вы не можете, поскольку такие значения могут изменяться во время выполнения, в то время как Room строит SQL, который создает таблицы, индексы и представления во время компиляции.

Параметр default = "" используется для применения значения к конструкции DEFAULT sql CREATE TABLE .....

Если вы успешно скомпилируете, вы можете увидеть сгенерированный SQL в сгенерированном java (Android View) в файле с тем же именем, что и класс @Database, но с суффиксом _Impl.

0
MikeT 27 Ноя 2021 в 22:02