首页 > 解决方案 > 我需要一个按钮在单击时更改为两种不同的颜色

问题描述

这是我的代码,我需要一个比较函数来替换 true 以便它可以设置不同的颜色。我试过 getBackground() 有很多错误,我在这里尝试了 Stack 上的其他选项,但没有成功。

  private fun makeColored(view: View) {
        when (view.id) {

               
            R.id.box_one_text -> if (true) view.setBackgroundColor(Color.DKGRAY) else view.setBackgroundColor(Color.WHITE)

标签: androidandroid-studiokotlin

解决方案


据我所知,这是我可以提供的答案,尽管可能会有更好的答案。

button.tag = "DEFAULT"
button.setOnClickListener { view ->
    makeColored(view)
}

你的makeColored功能应该是:

private fun makeColored(view: View) {
    when (view.tag) {
        "DEFAULT" -> {
            view.setBackgroundColor(Color.GREEN)
            view.tag = Color.GREEN
        }
        Color.RED -> {
            view.setBackgroundColor(Color.BLUE)
            view.tag = Color.BLUE
        }
        Color.BLUE -> {
            view.setBackgroundColor(Color.GREEN)
            view.tag = Color.GREEN
        }
        Color.GREEN -> {
            view.setBackgroundColor(Color.RED)
            view.tag = Color.RED
        }
    }
}

推荐阅读