Android 如何在Kotlin中定义使用@DrawableRes注释的接口?

Android 如何在Kotlin中定义使用@DrawableRes注释的接口?,android,kotlin,Android,Kotlin,我想创建一个接口来定义麦克风状态所需的一组可绘图项,例如: interface MicrophoneState { val iconResource: Int val backgroundResource: Int } 因为它应该是一个资源id,所以我想用@DrawableRes装饰它,但这样做时我得到了一个错误: 此批注不适用于目标“没有支持字段或委托的成员属性” 有没有办法解决这个问题?我发现的所有问题都与类有关,而不是与接口有关。我认为您不需要接口,因为显然您正在尝试构建

我想创建一个接口来定义麦克风状态所需的一组
可绘图项
,例如:

interface MicrophoneState {
    val iconResource: Int
    val backgroundResource: Int
}
因为它应该是一个资源id,所以我想用
@DrawableRes
装饰它,但这样做时我得到了一个错误:

此批注不适用于目标“没有支持字段或委托的成员属性”


有没有办法解决这个问题?我发现的所有问题都与类有关,而不是与接口有关。

我认为您不需要接口,因为显然您正在尝试构建一个模型来存储数据

class HelloWorldClass (@DrawableRes val value1: Int, @DrawableRes val value2: Int)
(您也可以使用数据类)

接口是某种东西的合同:

interface HelloWorldInterface {
    fun myMethod(@DrawableRes value: Int)
}

因为它是一个状态,所以使用数据类是非常理想的

data class MicrophoneState (
    @DrawableRes val iconResource: Int,
    @DrawableRes val backgroundResource: Int
)
或者如果您想使用这个接口

interface MicrophoneState {
    @DrawableRes fun iconResource(): Int
    @DrawableRes fun backgroundResource(): Int
}
任何人都可以工作

更新: 我想你正是在寻找这个:

interface MicrophoneState {
    @get:DrawableRes val iconResource:Int
    @get:DrawableRes val backgroundResource:Int
}