我想在用kotlin单击Android中的按钮后更改背景

我想单击按钮后更改背景

var bm : Button = messeg bm . setOnClickListener { bm . background = R.color.green } 

错误日志:

错误:(35,31)类型不匹配:推断类型是Int,但可绘制! 预期错误:任务':app:compileDebugKotlin'的执行失败。

编译错误。 查看日志了解更多详情

background需要一个Drawable ,但是你传递一个颜色资源。

  1. 你可以使用setBackgroundColor来设置一个颜色资源:

bm.setBackgroundColor(R.color.green)

  1. setBackgroundResource可以用来设置一个可绘制的资源:

bm.setBackgroundResource(R.drawable.green_resource)

  1. background属性可以用来设置一个可绘制的:

bm.background = ContextCompat.getDrawable(context, R.drawable.green_resource)