枚举或带字符串的密封类

Coo*_*ind 2 enums android kotlin

我可以创建enumsealed classKotlin包含字符串资源?

例如,我有这个课:

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")
}
Run Code Online (Sandbox Code Playgroud)

如果val resources: Resources在构造函数中添加字段,则无法设置参数resources,因此无法使用中的字符串资源strings.xml。在这种情况下,我无法将本地化用于enum

Tim*_*Tim 5

您不需要资源实例。您可以像在可绘制对象上一样使用字符串资源:

private enum class Item(
    val id: Int,
    @DrawableRes val imageRes: Int,
    @StringRes val title: Int
)
Run Code Online (Sandbox Code Playgroud)