枚举或带字符串的密封类

时间:2019-03-05 15:09:00

标签: android kotlin enums

我可以在enum中创建包含字符串资源的sealed 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")
}

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

1 个答案:

答案 0 :(得分:4)

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

private enum class Item(
    val id: Int,
    @DrawableRes val imageRes: Int,
    @StringRes val title: Int
)