Nou*_*hat 3 android background button kotlin
我想在点击按钮后更改背景
var bm : Button = messeg
bm . setOnClickListener {
bm . background = R.color.green
}
Run Code Online (Sandbox Code Playgroud)
错误日志:
错误:(35,31)类型不匹配:推断类型是Int但可绘制!预计错误:任务':app:compileDebugKotlin'的执行失败.
编译错误.有关详细信息,请参阅日志
Bob*_*Bob 10
background需要a Drawable,但是你传递的是颜色资源.
setBackgroundColor设置颜色资源:bm.setBackgroundColor(R.color.green)
setBackgroundResource 可用于设置可绘制资源:bm.setBackgroundResource(R.drawable.green_resource)
background property可用于设置drawable:bm.background = ContextCompat.getDrawable(context, R.drawable.green_resource)
小智 5
对于setBackgroundColor(),当前接受的答案是错误的。在给定的示例中,您将颜色设置为资源ID,但是必须直接传递颜色。
这不会失败,因为两个值都是int,但是您会得到奇怪的颜色。
取而代之的是,您应该首先从资源中检索颜色,然后将其设置为背景。范例:
val colorValue = ContextCompat.getColor(context, R.color.green)
bm.setBackgroundColor(colorValue)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13477 次 |
| 最近记录: |