TextView的背景没有改变!Kotlinandroid studio

tag5nh1u  于 10个月前  发布在  Android
关注(0)|答案(1)|浏览(110)

我是一个新手,目前正在做一个健康应用程序学校项目。
我发现了一个问题,当我试图改变一个文本视图背景与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) .但按钮颜色不完全改变.
请帮我解决这个问题,或者告诉我为什么会发生这个问题,我将非常感激。

zazmityj

zazmityj1#

嘿,如果你使用drawable设置背景,你应该使用:用途:

setBackgroundResource(R.drawable..)

字符串
但如果只是颜色的话,它会是:

setBackgroundColor(setBackgroundColor(ContextCompat.getColor(this.context, R.color..)


从代码方面来看,我猜第一个条件是有效的,因为你使用了正确的条件:

indiAu.setBackgroundResource(R.drawable.highbuttoncolor) // Correct
  satuanAu.setBackgroundColor(R.drawable.highbuttoncolor) // You dont need this


但第二和第三个条件你总是只用途:

indiAu.setBackgroundColor(R.drawable.normalbuttoncolor) // Wrong
 satuanAu.setBackgroundColor(R.drawable.normalbuttoncolor) // You dont need this


也可以使用setBackgroundResource()

相关问题