点击后,我需要一个按钮来更改为两种不同的颜色

时间:2020-09-11 04:06:02

标签: android android-studio kotlin

这是我的代码,我需要一个比较函数来替换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)

1 个答案:

答案 0 :(得分:1)

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

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
        }
    }
}