android - 带有字符串的枚举或密封类

标签 android kotlin enums

我可以在 Kotlin 中创建包含字符串资源的 enumsealed class 吗?

例如,我有这个类:

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 使用本地化。

最佳答案

您不需要 Resources 实例。您可以使用字符串资源,就像您对可绘制对象所做的那样:

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

关于android - 带有字符串的枚举或密封类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55005884/

相关文章:

android - Flutter Plugin 使用 Kotlin,Activity 总是返回 null

java - 使用 Jackson 反序列化枚举 Shape.OBJECT 失败

android - 无法创建类的实例 - ViewModel

c#-4.0 - 使用 Fluent Nhibernate 从系统命名空间映射 DayOfWeek

java - 如何从 Class<T> 推断 T 的方法

android - TabLayout 删除不必要的滚动

Android Keystore 的密码保护

java - 在写入内容之前调用 HttpUrlConnection 上的 getResponseCode 会引发 IOException

android - 使用 Cursor 和 SQLite 显示图像时崩溃

android - 如何修复 DefaultKotlinSourceSetKt 的初始化错误?