#java #android #android-room
#Ява #Android #android-комната
Вопрос:
Как я могу установить значение по умолчанию для некоторых полей из ресурсов, таких как строки . потому что я хочу задать значение для разных языков
@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:
Короче говоря, вы не можете, так как такие значения могут изменяться во время выполнения, в то время как Room создает SQL, который создает таблицы, индексы и представления во время компиляции.
Параметр по умолчанию = «» используется для применения значения к DEFAULT
конструкции CREATE TABLE ....
sql.
Если вы успешно скомпилируете, вы сможете увидеть сгенерированный SQL в сгенерированном java (представление Android) файле с тем же именем, что и у класса @Database, но с суффиксом _Impl.