Перечисления или запечатанные классы со строками - PullRequest
2 голосов
/ 05 марта 2019

Могу ли я создать enum или sealed class в Kotlin, которые содержат строковые ресурсы?

Например, у меня есть этот класс:

private enum class Item(
    val id: Int,
    @DrawableRes val imageRes: Int,
    val title: String
) {
    PURSE(1, R.drawable.ic_card, "My balance"),
    MESSAGES(2, R.drawable.ic_bell, "Messages")
}

Если я добавлю поле val resources: Resources в конструктор, я не смогу установить параметр resources, поэтому не могу использовать строковые ресурсы из strings.xml. В этом случае я не могу использовать локализацию для enum с.

1 Ответ

5 голосов
/ 05 марта 2019

Вам не нужен экземпляр ресурсов.Вы можете использовать строковый ресурс, как вы сделали для рисования:

private enum class Item(
    val id: Int,
    @DrawableRes val imageRes: Int,
    @StringRes val title: Int
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...