【问题标题】:android colors not showing correctlyandroid颜色无法正确显示
【发布时间】:2018-05-21 07:20:42
【问题描述】:

我在 Color.xml 中的颜色在应用程序中没有正确显示。例如,蓝色在屏幕上看起来是紫色的。以下是我的代码。如果我犯了错误,请警告我

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
    <color name="temaRenk">#01579B</color>
    <color name="temaGri">#F4F4F4</color>
    <color name="temaKapaliGri">#EDEDED</color>
    <color name="temaLacivert">#000019</color>
    <color name="masaBekliyor">#FFFFFF</color>
    <color name="masaHazirlaniyor">#00B4FF</color>
    <color name="masaHazir">#53C976</color>
    <color name="masaServis">#EFE302</color>
    <color name="masaIptal">#D21044</color>
</resources>

override fun onBindViewHolder(holder: masaListesiViewHolder, position: Int) {
        var olusturulan = MASALAR.get(position)
        holder.setData(position, olusturulan)
    }

    inner class masaListesiViewHolder(itemView : View?) : RecyclerView.ViewHolder(itemView){
        var masa = itemView as CardView
        fun setData(position: Int, olusturulan: MasaBilgileri) {
            masa.MASAADI.setText(olusturulan.MASAADI)
            var adisyonBilgisi = ADISYONLISTESI.filter{ adisyon -> adisyon.MASAADI == olusturulan.MASAADI}
            if(adisyonBilgisi.size != 0){
                var DURUMKONTROL = masaDurumuBelirle(adisyonBilgisi.get(0).DURUM)

                masa.MASATUTARI.setText(adisyonBilgisi.get(0).TUTAR.toString())
                masa.MASADURUMU.setText(DURUMKONTROL.get(0).MASADURUMU)


                masa.MASAADI.setTextColor(DURUMKONTROL.get(0).YAZIRENK)
                masa.MASATUTARI.setTextColor(DURUMKONTROL.get(0).YAZIRENK)
                masa.MASADURUMU.setTextColor(DURUMKONTROL.get(0).YAZIRENK)

                masa.setCardBackgroundColor(DURUMKONTROL.get(0).ARKAPLANRENK)
            }
        }
        fun masaDurumuBelirle(DURUM : Int) : ArrayList<MASADURUMBILGILERI>{
            var durumlar = ArrayList<MASADURUMBILGILERI>()
             when(DURUM){
                0 -> { durumlar.add(MASADURUMBILGILERI("BEKLİYOR", R.color.masaBekliyor, Color.BLACK))}
                1 -> { durumlar.add(MASADURUMBILGILERI("HAZIRLANIYOR",R.color.masaHazirlaniyor, Color.WHITE))}
                2 -> { durumlar.add(MASADURUMBILGILERI("HAZIR",R.color.masaHazir, Color.BLACK))}
                3 -> { durumlar.add(MASADURUMBILGILERI("SERVİS E.",R.color.masaServis, Color.BLACK))}
                4 -> { durumlar.add(MASADURUMBILGILERI("İPTAL",R.color.masaIptal, Color.WHITE))}
            }
            return durumlar
        }
    }
    data class MASADURUMBILGILERI(var MASADURUMU : String, var ARKAPLANRENK : Int, var YAZIRENK : Int){}

我正在从 ViewHolder 向另一个函数发送一个值,并且我正在从 color.xml 导入该值的值。 我该如何解决这个问题?

【问题讨论】:

    标签: java android kotlin


    【解决方案1】:

    我不懂非英文代码,但我敢打赌,您传递的是资源 ID,这就是颜色不同的原因。分配颜色时使用ContextCompat.getColor

    【讨论】:

      【解决方案2】:

      看起来您在颜色的 resId 和颜色的原始值之间感到困惑。它们都是int 类型。老实说,您的代码具有糟糕的编码风格,我不知道您在做什么,但请尝试查看 setTextColorsetCardBackgroundColor 方法并找出传递给它们的值是什么, resId 或颜色值?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-22
        • 2014-06-08
        • 2014-12-03
        • 1970-01-01
        • 2022-11-22
        • 2020-04-02
        • 2015-11-23
        相关资源
        最近更新 更多