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
}