使用Kotlin,当一个按钮被点击时,如何根据特定变量的值来改变它的foregroundTint颜色?

0 人关注

我想做一个按钮,它的前景色调在被点击后会改变颜色。如果一个名为lot1的变量是假的,它将变成红色,如果是真的,它将变成绿色。然而,当我试图这样做时,我发现我不能调用属性 "foregroundTint",但我可以调用类似的属性,如foregroundTintList和foregroundTintMode。但是我需要把foregroundTint的值从@color/lotDefault改为@color/lotWin,或者把@color/currentTint的值从一种颜色改为另一种。我似乎不知道如何从一个函数中做到这一点。 下面是我尝试输入时显示的foregroundTint属性的选项 但是我只想改变foregroundTint。我的下一个猜测是使用一个变量,我已经试过了,但不能让它工作,我如何创建一个公共变量,把颜色作为一个值,可以在colors.xml、 activity_main.xml和MainActivity.kt中调用?我试着在MainActivity中做了 public var currentColor ="@color/lotDefault" ,在activity_main中做了 var currentColor = MainActivity().currentColor ,但就是不工作。另外,我知道我应该把改变颜色的代码移到win()和loss()函数中去,只是在截图的时候我还没有这样做。

如果您对这些解决方案有任何帮助,我们将不胜感激,特别是如果您能以我这样的初学者能够理解的方式来解释。提前感谢。

android
kotlin
Thelipius
Thelipius
发布于 2022-01-18

推荐产品

云服务器_QVM_云主机

云服务器_QVM_云主机

七牛云 QVM 以云服务器为核心,提供含云硬盘、云数据库、高防、负载均衡等解决方案为一体的云计算综合服务。
CDN_内容分发网络

CDN_内容分发网络

七牛 CDN 提供稳定快速的网络访问服务。保障您的音视频点播、大文件下载、应用及 Web 加速服务的稳定及连续性。
云存储_对象存储

云存储_对象存储

七牛云对象存储系统 kodo 支持中心和边缘存储,经过多年大规模用户验证已跻身先进技术行列,并广泛应用于海量数据管理的各类场景。
实时音视频通信_RTC

实时音视频通信_RTC

七牛实时音视频云为您提供一站式解决方案,零基础搭建音视频平台,快速支持视频通话、多人会议、互动直播、语音聊天室等多种业务场景。