Если вам не нравятся все эти if
операторы (по одному на каждый нарисованный фон), попробуйте что-то вроде этого:
var btnBackground = findViewById(R.id.buttonBg) as Button
var bgColor: Int = 0
val bgDrawableIds = intArrayOf(
R.drawable.btn_center_gradient,
R.drawable.btn_edge_color,
R.drawable.btn_gradient,
R.drawable.btn_solid_color
)
btnBackground.setOnClickListener { v ->
bgColor++
btnBackground.background = resources.getDrawable(bgDrawableIds[bgColor % bgDrawableIds.size])
}
Если вам нужно добавить больше фонов, просто добавьте их в массив.