我是一个新手,目前正在做一个健康应用程序学校项目。
我发现了一个问题,当我试图改变一个文本视图背景与drawable reference。它喜欢的文本视图的颜色不遵循我的程序行,但在某些条件下,它运行完美。
应用程序的外观
代码
private fun updateIndikatorAu(){
//Colors
val colorHigh = "#e85218"
val colorNormal = "#6b91ca"
val colorLow = "#eeaf17"
val colorNull = "#7F808B"
//Fields
indiAu = findViewById(R.id.textindi_au)
kadarAu = findViewById(R.id.textkadarprof_au)
satuanAu = findViewById(R.id.textsatuanprof_au)
judulAu = findViewById(R.id.textprof_au)
//Nilai
val nilaiNullAU = 0
val nilaiProfAU = kadarAu.text.toString()
val nilai1AU = 7.0
//converter Double
val auNol = nilaiNullAU.toDouble()
val auNormal1 = nilai1AU.toDouble()
val auProf = nilaiProfAU.toDouble()
//Nilai Tinggi
if (auProf > auNormal1){
indiAu.setBackgroundResource(R.drawable.highbuttoncolor)
satuanAu.setBackgroundColor(R.drawable.highbuttoncolor)
kadarAu.setTextColor(android.graphics.Color.parseColor(colorHigh))
judulAu.setTextColor(android.graphics.Color.parseColor(colorHigh))
}
//Nilai Normal
else if (auProf > auNol && auProf < auNormal1){
indiAu.setBackgroundColor(R.drawable.normalbuttoncolor)
satuanAu.setBackgroundColor(R.drawable.normalbuttoncolor)
kadarAu.setTextColor(android.graphics.Color.parseColor(colorNormal))
judulAu.setTextColor(android.graphics.Color.parseColor(colorNormal))
}
//Nilai 0
else if (auProf == auNol){
indiAu.setBackgroundColor(R.drawable.nullbuttoncolor)
satuanAu.setBackgroundColor(R.drawable.nullbuttoncolor)
kadarAu.setTextColor(android.graphics.Color.parseColor(colorNull))
judulAu.setTextColor(android.graphics.Color.parseColor(colorNull))
}
}
字符串
我用同样的方法来改变背景颜色之前setBackgroundColor(android.graphics.Color.parseColor(colorHigh))
像文本颜色改变代码.它工作正常,但我需要保持圆角.所以我用R.drawable.highbuttoncolor
代替android.graphics.color.parseColor(colorHigh)
.但按钮颜色不完全改变.
请帮我解决这个问题,或者告诉我为什么会发生这个问题,我将非常感激。
1条答案
按热度按时间zazmityj1#
嘿,如果你使用
drawable
设置背景,你应该使用:用途:字符串
但如果只是颜色的话,它会是:
型
从代码方面来看,我猜第一个条件是有效的,因为你使用了正确的条件:
型
但第二和第三个条件你总是只用途:
型
也可以使用
setBackgroundResource()