android - 我需要一个按钮在单击时更改为两种不同的颜色
问题描述
这是我的代码,我需要一个比较函数来替换 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)
解决方案
据我所知,这是我可以提供的答案,尽管可能会有更好的答案。
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
}
}
}
推荐阅读
- git - 分支主节点是只读的,只能在 Bitbucket 中使用拉取请求进行修改
- flutter - 哪个是给颤振应用贴上白标签的更好方法
- fipy - Fipy 在求解时间步之间更改 CellValue
- java - 我没有在登录用户环回中查看访问令牌
- python - 在df中转置值?
- ruby - 无法使用 Ruby Errno::ENOENT 打开文件:没有这样的文件或目录 @ rb_sysopen
- java - Jaeger UI 组轴突事件
- javascript - ThreeJS如何检测是否有任何Box / Mesh与另一个碰撞?
- java - Android Camera X ImageAnalysis 图像平面缓冲区大小(限制)与图像大小不匹配
- java - Mybatis 获取 clob 字段